表題のエラーの解決策です。
原因としては、本来Toastはメインスレッドでのみ実行できる仕様ですが、サブスレッドで実行してしまっていることです。
解決策はHandlerを使ってメインスレッドで実行するように変更すればOKです。
以下、具体例です。
修正前
1 | ExecutorService executor = Executors.newSingleThreadExecutor(); |
修正前
1 | final Handler handler = new Handler(); |
handler.post
の処理はnew Handler()
したスレッドで実行されるのでnew Handler()
はメインスレッドで実行する必要があります!
Android開発は非同期処理が鬼門ですよね、、
おわり