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

标签 android broadcastreceiver alarmmanager android-pendingintent

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

但用户可能会关闭我的应用程序,而我允许该服务的功能在用户未使用我的应用程序的情况下正常工作。

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

现在我该怎么做第二种方式?当我试图获取 AlarmManager 的引用时,它给出了空指针错误。 (我正在从广播接收器访问这个警报管理器)

谁能给我建议如何从 Activity 上下文外部取消重复警报?

谢谢:)

最佳答案

你可以这样停止你的服务 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);

希望对你有帮助

关于android - Android 应用程序被杀死后停止警报,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26480513/

相关文章:

Android AlarmClock() , 设置闹钟日期

android - 为平台 2.1 构建 Android-openssl 库

java - 启动新 Activity 时,带有 WebView 的 Android Activity 崩溃

android - GCM : messages by IntentService. 如果应用程序不可见,则不会收到 sendBroadcast

android - AlarmManager 不会触发 PendingIntent - Android

java - 安卓工作室堆栈=java.lang.NoClassDefFoundError : Failed resolution of: Landroid/icu/util/Calendar;

android - 在android 5.1中每秒安排一次闹钟

java - 显示键盘时如何阻止警报对话框向上移动

android - 在我通过 gradle 分发库后,我在库模块中创建的 BindingAdapter 无法从任何应用程序模块访问

java - 广播接收器检查时间根本不起作用