私はリマインダーアプリケーションを構築しています。このアプリケーションでは、1回、毎週、毎月のリマインダーを使用して、期日と時刻にリマインダーをユーザーに通知します。リマインダーは、ユーザーがいつでも更新して、リマインダー時間を更新したり、リマインダーを完全に削除したりできます。私は特定の問題を解決するために2つの方法を考えました。
- ユーザーがリマインダーを設定するたびに、一意のIDを使用してそれに応じてアラームをスケジュールし、ユーザーがアラームを更新または削除した場合に備えて、それを更新または削除します。
- リマインダー時間をDBに保存するので、最も近いリマインダーのアラームをスケジュールするのがより良いアプローチです。そして、アラームによってトリガーされるサービスに、次に近いリマインダーの新しいアラームをスケジュールさせます。
2番目のアプローチはクリーンなアプローチのようですが、アラームによってトリガーされたサービスが次のリマインダーの新しいアラームをスケジュールする前にシステムによって強制終了された場合にどのように対処しますか?
編集 システムがメモリのためにサービスを強制終了した場合、サービスが再作成されるように見えます。実行されるたびにアラームをスケジュールするためにサービスに依存することが安全であることを意味しますか?
編集2 デバイスが再起動されるたびにAndroidがすべてのアラームを強制終了することに気づきました。これにより、アプローチ2がより優れたソリューションになります。今のところ実装しました。