应用程序被杀后Android停止警报

时间:2014-10-21 06:47:28

标签: android broadcastreceiver alarmmanager android-pendingintent

我的申请中有一个情况。我正在使用闹钟呼叫服务。警报每5分钟唤醒并呼叫该服务。

但可能会发生这样的情况:用户可能会关闭我的应用程序,即使用户没有使用我的应用程序,我也允许该服务的功能正常工作。

要停止服务有两种方式,用户回到应用程序并按下一个按钮取消警报,或者第二种方式是在x时间后我要停止服务,即从广播中取消警报接收机。

现在我该如何做第二种方式?当我试图获得AlarmManager的引用时,它给出了Null指针的错误。 (我从广播接收器访问此报警管理器)

有人可以就如何从活动上下文之外取消重复警报向我提出建议吗?

谢谢:)

2 个答案:

答案 0 :(得分:1)

您可以像这样停止服务 context.stopService(new Intent(context, YourService.class))

另外,为了取消闹钟,你可以这样做

 Intent intent = new Intent(this, YourClass.class);
 PendingIntent pendingIntent = PendingIntent.getBroadcast(getApplicationContext(), 1253, intent, PendingIntent.FLAG_UPDATE_CURRENT| Intent.FILL_IN_DATA);
 AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);
 alarmManager.cancel(pendingIntent);

我希望这可以帮到你

答案 1 :(得分:0)

在你的BroadcastReceiver中试试这个:

      public void onReceive(Context context, Intent intent) {
          context.stopService(new Intent(context, YourService.class));
      }