1

次のような状況があります。

異なる特定の日付に同じアクティビティを開始するには、多くのアラームを設定する必要があります。

これを実現するために、私は明らかに AlarmManager を使用しています。

AlarmManager に指定された PendingIntents はすべて同等であるため、Android に (1 つだけでなく) すべての PendingIntents を作成させるために、別のものを使用してrequestCodeそれらを区別します。

これはすべて正常に機能し、すべてのアラームが正しく作成されます。

ポイントは、時々キャンセルしなければならないということです!

同じようにしないとrequestCode、AlarmManager はそれらをキャンセルしません。

コード内でオリジナルを取得することは非常に困難requestCodeです。それらは実行時に異なる時点/日に作成されるためです...

この状況に対処する方法について何か提案はありますか?

4

1 に答える 1

1

アラームをキャンセルする唯一の方法は、同じ保留中のインテントをキャンセルすることであるため、正しいアプローチがありrequestCodeますが、問題は実行時に行われた同じリクエストコードを取得しています。これらのコードを何らかの方法で SQLite または共有設定で保存して、デバイスに保存し、必要に応じて取得する必要があります。requestCodeまたは、インテントで をとして渡し、起動bundle後すぐにキャンセルするか、選択したアラーム ライフ サイクルの途中でキャンセルすることもできます。これが少し役立ったことを願っています。

于 2013-09-28T14:34:19.673 に答える