2011-12-06 16 views
3

アラームを却下し、2つの異なるアクティビティでアラームを削除したいと思います。両方の機能にはどのような機能がありますか? alarmmanager.cancel()アラームを解除または削除しますか?アラームの解除と削除

私はこのコードを書かれている:私はこれを実行すると

Button DeleteButton = (Button) this.findViewById(R.id.dismiss_button); 
    DeleteButton.setOnClickListener(new OnClickListener() { 

     @Override 
     public void onClick(View v) { 
      // TODO Auto-generated method stub 
      // Build Intent and Pending Intent to Set Snooze Alarm 
      Intent AlarmIntent = new Intent(AlarmActivity.this, 
        AlarmReceiver.class); 
      AlarmManager AlmMgr = (AlarmManager) getSystemService(ALARM_SERVICE); 
      PendingIntent Sender = PendingIntent.getBroadcast(
        AlarmActivity.this, 0, AlarmIntent, 0); 
      AlmMgr.cancel(Sender); 
      finish(); 

     } 

    }); 

アプリがクラッシュします。 親切に助けてもらえますか?

+1

どのようなエラーが表示されますか?あなたのLogcatを投稿してください。私はあなたがAlarmを起動していないことを知っています。なぜなら、あなたは 'cancel()'を呼び出すため、おそらくエラーが発生するからです。 – Huang

+0

PlzはReceive Alarm Staus用のブロードキャスト受信者とStoreアラームイベント用のSqliteデータベースを使用します。 –

+0

私はキャンセル機能を使用してアラームをキャンセルしましたが、キャンセル機能が正確に何をしているのか、今は混乱しています。アラームまたは "削除"の "停止"の目的に役立ちますか? –

答えて

2

アラームマネージャの設定方法を保留中のインテントで呼び出す必要があります。

//Set an alrm for 5 seconds from now 
AlmMgr.set(AlarmManager.RTC_WAKEUP, System.currentTimeMillis() + 5000 ,Sender) 
//Do stuff 
... 
//Cancel alarm 
AlmMgr.cancel(Sender) 

それはあなたのLogCat出力を見ずに必ずすることは困難ですが、私はそれが例外をスローして設定されている前にアラームを解除しようとしていることを推測します。 APIによると、.cancel()アラームを削除しますので、それはオフに行くことはありません:

http://developer.android.com/reference/android/app/AlarmManager.html#cancel(android.app.PendingIntent

私はそれが処理中である場合には、アラームを停止し、キャンセルされます確認することができませんすでに聞こえていますが、これをかなり簡単に確認できるはずです。