タイマーはアプリで停止し、制限があり、すべてのタイマーが独自のスレッドを起動するため、タイマーの代替手段を探しています。時々、約 20 ~ 30 個のタイマーを起動する必要があります。
時間内にいくつかのイベントを設定する必要があり、アプリ画面が表示されるようになりました。出来ますか?
AlarmManagerを使用する必要があります。
CommonsWare が言うように、それにはいくつかの制限がありますが、それは問題ありません。ユーザーが強制的にアプリケーションを閉じた場合、それは彼がアプリケーションを使用したくないことを意味します (それ以上またはメモリの並べ替えのため)...
そして、ユーザーが強制的にアプリを閉じるとリッスンできないため、解決策があります (ただし、最善ではない可能性があります)。1 つの方法は、アプリケーションを起動するたびにイベントを再スケジュールすることです。これが良い解決策ではないことはわかっていますが、.....他に方法はまだありません
これが良い例です。
これは、「アプリで死ぬ」の定義に応じて、可能である場合と不可能である場合があります。
将来の特定の時間に呼び出されるようAlarmManager
にスケジュールするために使用できます。PendingIntents
それらPendingIntents
は活動を開始できます。これは、アプリが通常の原因で「停止」した場合に機能します。
でも:
ユーザーが設定を介してアプリを強制終了した場合、アラームはスケジュールされておらず、これを停止するためにできることは何もありません (またAlarmManager
、何とかこれを乗り切るための代替手段もありません) 。
ゲーム、ナビゲーション、ビデオ、またはNotification
通話がアクティビティによって中断されることをユーザーが必ずしも歓迎するとは限りません。