4

リマインダー アプリのアラームを設定しています。

PendingIntent sender = PendingIntent.getBroadcast(AddToDoList.this, 
          Integer.parseInt(DBHelperClass.getMaxPrimaryId()), intent, 0);

一意の値 (プライマリ ID) を使用してアラームを設定しています。アラームを編集したいときは、同じキーを使用しています。しかし、私が見ているのは、両方のアラームが鳴っているということです! オリジナルと編集されたもの。

古いアラームをキャンセルするにはどうすればよいですか? また、これらのアラームは、デバイスのスイッチをオフにしてからもう一度スイッチをオンにすると機能しません。

4

2 に答える 2

1

古いアラームをキャンセルするにはどうすればよいですか?

元の で呼び出しcancel()ますPendingIntent

また、これらのアラームは、デバイスのスイッチをオフにしてからもう一度スイッチをオンにすると機能しません。

再起動後、アラームは保持されません。BroadcastReceiverおそらく起動時に制御を取得するによって、アラームのスケジュールを変更する必要があります。

于 2010-07-02T07:52:41.720 に答える
0

インテントを一意にする方法を変更することを検討する必要があります -requestCodeは公式に定義されていません。たとえば、インテントのデータを別のものにしてみてください。

再起動してもアラームが持続するかどうかはわかりませんが、おそらくRTC_WAKEUP フラグが最も近いでしょう。

于 2010-07-02T06:36:12.083 に答える