2010-08-03 78 views
0

我有一个由多个活动组成的应用程序。当应用程序启动时,某些报警使用AlarmManager计划和一些服务是否已启动:Android:应用程序结束时停止服务和警报

AlarmManager am = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE); 
a.setInexactRepeating(...) 
.... 

我想知道什么办法保证每一个服务都停止,当用户退出应用程序的每个报警不定期

问题是,用户可以从不同的活动中离开应用程序,我不喜欢在每个活动中覆盖onDestroy方法的想法。有什么已知的Intent当应用程序结束时我可以收到吗?

我还发现,Android应用程序可以有一个类,从Application延伸,一个onTerminate方法:

public class MyApplication extends Application { 
    @Override 
    public void onTerminate() { 
     ... 
    } 
} 

但文档是很清楚的:“从不依赖于被调用此方法;在很多情况下,不需要执行任何应用程序代码就会被内核杀死“

任何建议都非常感谢。

回答

2

我想知道什么办法 保证每一个服务都停止, 每一个报警不定期当 用户退出应用程序。

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

是否有任何已知的意图我可以 当应用程序结束时收到?

我还发现一个Android应用程序 可以有一个类, 从应用程序扩展,具有 onTerminate方法

这将被调用,在很多情况下,在没有更多运行组件的某个时候。在你的情况下,有运行的组件(服务)。

但是文档是很清楚的: “从来没有靠这个方法是 调用;在很多情况下不需要的 应用程序将简单地 内核打死不执行 任何应用程序代码”

我知道什么时候不会调用的唯一情况是,如果进程正在终止,在这种情况下,您的服务也将被淘汰,但预定的警报不会。

相关问题