私がやろうとしているのは、ユーザーが設定した定期的にメール アカウントにログインし、受信トレイと送信済みアイテムの両方をチェックするアプリを作成することです。
いくつかのクエリがあるので、長さのためにこれが無視されないことを願っています。
- 電話の起動が完了し
BroadcastReceiver
た後に を起動する必要があると思います。AlarmManager
AsyncTask
メインの UI スレッドからメールを読む必要があります。ただし、Service
別のスレッドでも実行されますか?PendingIntent
の中からAlarmManager
(なぜこれPendingIntent
が正常ではないのIntent
ですか?) または を選択する必要がありますgetBroadcast()
かgetService()
?- プロセス全体の私の理解は次のとおりです。
- 電話が起動を終了し、ブロードキャストを開始します
BroadcastReceiver
イベントを取得して設定するAlarmManager
AlarmManager
Intent
特定の時間に発火BroadcastReceiver
イベントを取得しますBroadcastReceiver
始まるService
Service
始まるAsyncTask
そうですか?それは非常に長い道のりのようです。as のgetService()
代わりに選択した場合、上記の手順で 2 番目のブロードキャストの呼び出しをスキップして、そのまま?getBroadcast()
PendingIntent
Service
これを再読すると、特定の質問をしていないと思いますが、私の理解が正しいかどうか、または完全に迷っているかどうかを知りたいです (私はそう感じます!)
更新:アラームマネージャーから直接呼び出すことができるので、良い音のするインテントサービスを使用すると思います。ただし、周りを読んでみると、サービスが十分長く起動していない可能性があるため、ウェイクロックを使用するにはとにかくブロードキャストレシーバーを使用する必要がある可能性があります。これについては現在さらに調査中です。
Commonsware は WakefulIntentService と呼ばれる便利なラッパーを作成しました。これを使用して、独自のウェイク ロックを行うことができます。