0

私は、アラームが鳴る時間をダウンロードする「歓迎」画面を持っていますが、ユーザーが画面に表示されるたびに新しいアラームが設定されます当然のAndroid - アラームが設定されているかどうかを検出する方法(alarmmanager)

これは

1は、今日のために設定されている場合は、検出することができますどのような方法がある複数のアラームの原因は?

AndroidのAPIを経由して、事前にあなたの助けに感謝

アンディ

答えて

6

同じ保留中のインテントでアラームを設定すると、以前のアラームはキャンセルされ、再度リセットされます。アラームをキャンセルする場合は、alarmManager.cancel(操作)でそのアラームをキャンセルできます。 このようなアラームを設定した場合。

PendingIntent sender = PendingIntent.getBroadcast(MyAlarm.this,0,intent, 0); 
    AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE); 
      alarmManager.set(AlarmManager.RTC_WAKEUP, System.currentTimeMillis() + (5 * 1000), sender); 

次に、次の方法でアラームをキャンセルします。

alarmManager.cancel(sender); 
+0

ああ、アラームを設定するインテントを含む同じコードを使用すると、以前のインテントは新しい時刻に更新されますか? – Garbit

+0

はい。ドキュメントを参照してください。 public void set(int type、long triggerAtTime、PendingIntent operation) 導入されたバージョン:APIレベル1 アラームをスケジュールします。注意:タイミング操作(ティック、タイムアウトなど)の場合、Handlerを使用する方が簡単で効率的です。同じIntentSenderにスケジュールされたアラームが既に存在する場合、最初にキャンセルされます.http://developer.android.com/reference/android/app/AlarmManager.html#set(int、long、android.app.PendingIntent) – jainal

+0

私はいくつかの他のタスクのためにハンドラを使用しました。あなたはアラームのためにハンドラを使うべきでしょうか? このJainalヘルプありがとうございます – Garbit

0

ありません。後でそれらを検索したい場合は、自分自身をSharedPreferencesやファイルに保存する必要があります。