私は現在 AsyncTask を使用して Android SMS database/provider
("content://sms") を監視している Android アプリを持っています。
これAsyncTask
は、メイン アクティビティが開始されるたびに実行されます。
今、私はそれを非同期で実行できるようにしたいと考えています。つまり、SMS が送受信されるたびにデータベースを更新したいと考えています。
私は現在、2分ごとに繰り返し実行を設定するIntentService
ために使用しています。AlarmManager
また、SMS が送受信されるたびに ContentObserver
を使用してスレッドを実行する「STICKY」サービスも試しました。handler.post()
私の疑問は次のとおりです。
1) どの方法がより効率的ですか? 「STICKY」サービスまたは IntentService メソッドを実装するものですか?
2) handler.post() を使用する場合、次のシナリオを想像してください。SMS が受信され、スレッドが実行されます。このスレッドの実行中に別の SMS を受信した場合、新しいスレッドが作成され、古いスレッドと同時に実行されますか?
3) これまでに試した方法以外に方法はありますか?
ありがとう。