2011-12-06 86 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

我不能肯定它会停止并取消报警,如果它是在过程听起来已经是了,但你应该能够很容易地检查这一点。