2011-12-06 113 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。我看到你沒有啓動鬧鐘,也許這就是你爲什麼會因爲調用'cancel()'而出錯的原因。 – Huang

+0

Plz使用廣播接收器接收警報Staus和Sqlite數據庫以存儲警報事件。 –

+0

我用取消功能來取消鬧鐘..但是我現在對取消功能做了什麼有些困惑。它是否在鬧鐘或「刪除」中提供了「停止」的功能? –

回答

2

我想你需要先調用alarmManager的設置方法,然後才能取消它,

//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

我不能肯定它會停止並取消報警,如果它是在過程聽起來已經是了,但你應該能夠很容易地檢查這一點。