我有一个定期触发的警报管理器。 activity_main中的按钮会触发它。
工作正常。没有任何问题。报警管理器在Main类中定义。 方法(在按钮单击时激活)调用警报管理器。另一种方法应该停止或取消它。
代码:
public class MainActivity extends Activity {
private PendingIntent pi;
private AlarmManager alarmManager;
.......................................
......................
public void activate(View view) {
//this activates the alarm manager.
alarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, System.currentTimeMillis(), interval, pi.getBroadcast(this, 1, i, pi.FLAG_UPDATE_CURRENT));
}
public void deactivate(View view) {
//this should Deactivate the alarm manager.
alarmManager.cancel(pi);
}
}
然而,第二种方法不起作用。 (停用)。
单击第二个按钮时,应用程序将崩溃!!
Log cat的原因如下:
Caused by: java.lang.NullPointerException.
有关如何解决此问题的任何想法? 我应该在第二种方法中再次创建一个意图吗?我尝试了但没有用.. 对此有何建议或解决方法?
答案 0 :(得分:0)
对于有类似问题的人......
必须在用于停用AlarmManager的方法中再次初始化AlarmManager。还需要创建待定意图。
此外,请确保创建用于激活或设置重复警报的相同待处理意图(名称和属性)。然后,取消它。 @joey chong的所有学分
希望有所帮助......