我正在使用闹钟管理器来设置待处理的意图,因此即使应用已关闭,我的代码也会被执行
manager.setRepeating(AlarmManager.RTC, System.currentTimeMillis() + interval, interval, pendingIntent);
问题是它在应用程序打开时也有效,我需要将其配置为仅在应用程序关闭时才能工作。有没有办法通过警报管理器或活动来配置它?
答案 0 :(得分:1)
警报在您的应用程序范围之外运行,因此如果您不再需要它们,则需要手动取消它们。您可以使用AlarmManager
cancel()
方法来完成此操作。
不幸的是,我认为没有一种简单的方法可以理解您的应用程序是否正在关闭。在路上可能正在使用cancel()。查看ActivityLifecycleCallbacks以获取更多信息。你可以在那里阅读
只需检查已停止活动的数量是否等于该数量 开始的活动。如果他们是平等的,你的申请就是 中背景
此时您可以设置闹钟。 相反
如果有更多已启动的活动,您的应用程序仍然是 可见。如果恢复的活动多于暂停的活动,那么您的活动将会暂停 应用程序不仅可见,而且还在前台
在这种情况下,您可以使用AlarmManager
的{{1}}方法。
请记住,每次重启设备时都会取消所有警报。