Android:应用程序结束时停止服务和警报

Android:应用程序结束时停止服务和警报,android,android-alarms,Android,Android Alarms,我有一个由几个活动组成的应用程序。当应用程序启动时,使用AlarmManager计划一些报警,并启动一些服务: AlarmManager am = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE); a.setInexactRepeating(...) .... 我想知道当用户退出应用程序时,如何保证每项服务都已停止,每一次警报都未计划好 问题是用户可以从不同的活动中离开应用程序,我不喜欢在每个活动中重写ondesto

我有一个由几个活动组成的应用程序。当应用程序启动时,使用
AlarmManager
计划一些报警,并启动一些服务:

AlarmManager am = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
a.setInexactRepeating(...)
....
我想知道当用户退出应用程序时,如何保证每项服务都已停止,每一次警报都未计划好

问题是用户可以从不同的活动中离开应用程序,我不喜欢在每个活动中重写
ondestory
方法。当应用程序结束时,我是否可以收到任何已知的
意图

我还发现Android应用程序可以有一个从
application
扩展而来的类,使用
onTerminate
方法:

public class MyApplication extends Application { 
    @Override
    public void onTerminate() {
        ...
    }
}
但文档非常清楚:“永远不要依赖于调用此方法;在许多情况下,不需要的应用程序进程只会被内核杀死,而不执行任何应用程序代码”

非常感谢您的任何建议

我想知道去哪里的路 确保每项服务都已停止,并且 每次警报都是不定时的 用户退出应用程序

Android中没有“用户退出应用程序”这样的东西

我有什么已知的意图吗 当应用程序结束时接收

没有

我还发现一个安卓系统 应用程序可以有一个 从应用程序扩展,并使用 终止法

在许多情况下,在没有更多运行的组件之后的某个时候,将调用此函数。在您的情况下,存在正在运行的组件(服务)

但文件非常清楚: “永远不要依赖于这种方法 称为;在许多情况下是不必要的 申请过程将非常简单 被内核杀死而不执行 “任何应用程序代码”

我所知道的唯一不调用它的情况是进程被终止,在这种情况下,您的服务也将被取消,尽管计划的警报不会被取消