AsyncTaskとTimerTaskは、異なるAPIバージョン間で同じように動作しないことがわかりました。
これが私の設定です:TimerTaskは時々起動するように設定されています。TimerTaskが起動したときにメソッドが呼び出されるサービスがあります。このメソッドは、バックグラウンド処理のためにAsyncTaskをインスタンス化します。AsyncTaskはUIに触れないことに注意してください。
上記はすべてAndroidAPI16および17で正常に機能しますが、低レベルのAPIでは失敗し、標準の「ハンドラーを作成できません... Looper.prepare()」エラーが発生します。たとえば、TimerTaskでAsyncTaskを開始します。
これを回避するには、AsyncTaskをRunnableに変更してから、サービスのメソッドで新しいスレッドを手動で開始します。しかし、バージョン16以降のAPIで何が変更されたのでしょうか。Looper.prepare()は実際にTimerTaskスレッドで呼び出されていますか?もしそうなら、TimerTaskを使い続けることができるようにコードに同じことを実装する簡単な方法はありますか(後でAsyncTaskからUIを更新することを決定する可能性があるため、Runnableソリューションは多くの点で最適ではありません)。
ありがとう、
Veljko