毎週繰り返されるアラームをいくつか設定して、ユーザーがクラス(アカデミックアプリ)にいるときに電話を自動的に振動させ、クラスが終了すると音量をリセットする必要があります。
すでにアラームを作成していますが、ユーザーがこの機能を無効にした場合は、すべてのアラームを非アクティブ化する方法が必要です。また、AlarmManager.cancel()メソッドに同じパラメーターを渡してインテントすることでこれを行う必要があることもわかっていますが、ここでの問題は次のとおりです。
ユーザーはクラスをキャンセルしてクラスに登録できます(ただし、アプリに直接登録することはできません)。これは更新されてDBに反映され、現在のクラスのみが保持されます。それで、もう存在しないクラスへのアラーム設定がある場合、PendingIntentを複製できない場合、どうすればそれをキャンセルできますか?
ここで見た解決策の1つは、現在のアラームを追跡するdbテーブルを作成することです。そうすれば、それらを完全に制御できます。別の方法は、クラスリストが更新されたときにすべてのアラームをキャンセルしてリセットすることですが、そうすることにはかなりの時間がかかります。時間の長さ、そして3番目の、しかしあまり親しみのないオプションは、ユーザーが電話を起動するのを待つことです。アラームをリセットするときは、必要なものを設定するだけです(この起動動作が間違っている場合は修正してください)。私が試すべき4番目のオプションはありますか、それとも十分であればこれらの1つですか?