【发布时间】:2015-08-01 20:38:17
【问题描述】:
我正在尝试通过 Map 活动中的 onBackPressed() 方法停止 MainActivity 中的 alarmManager。我已经尝试了下面的代码,但是 alarmManager 没有被停止并且仍在触发。我该如何解决?
MainActivity 中的代码:
Intent intent = new Intent(MainActivity.this, GetLLRD.class);
intent.putExtra("json_data", json);
PendingIntent pendingIntent = PendingIntent.getService(
getApplicationContext(), 123, intent, PendingIntent.FLAG_UPDATE_CURRENT);
AlarmManager alarm = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
Calendar cal = Calendar.getInstance();
alarm.setRepeating(AlarmManager.RTC_WAKEUP,
System.currentTimeMillis(), 20 * 1000, pendingIntent);
startService(intent);
地图活动中的代码:
@Override
public void onBackPressed() {
Intent intent = new Intent(Map.this, MainActivity.class);
PendingIntent pendingIntent = PendingIntent.getService(
getApplicationContext(), 123, intent, PendingIntent.FLAG_UPDATE_CURRENT);
AlarmManager alarm = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
alarm.cancel(pendingIntent);
}
【问题讨论】:
-
您尝试取消的 PendingIntent 与您最初设置的闹钟不同。
-
@ci_:我怎样才能使它们相同?我的错误在哪里?
-
嗯,Intents 是针对初学者的不同类的。您正在 GetLLRD.class 上设置警报,然后尝试在 MainActivity.class 上取消它。
-
我用这个意图尝试过 `Intent intent = new Intent(Map.this,GetLLRD.class);` 现在它可以工作了。谢谢。
标签: android