有没有 Android 的 Application::onDestroy() 等效函数?

10

你好,我正在使用Application::onCreate来放置我的应用程序的初始化代码,但是当等待一段时间并启动其他应用程序时,我注意到Application类的实例再次被创建...

如何全局检测Android何时关闭我的应用程序实例?


看起来使用 Service 而不是 Application 类是正确的选择。Service 类提供了一个 onDestroy 处理程序。 - David
3个回答

3

我一直在使用Service类,并且一直没有问题。如果有更好的答案,请告诉我。


你的意思是在这里你只是扩展了Service类而不是Application类吗?或者可能并不那么简单? - 2dvisio
1
需要注意的一件棘手的事情是,您的活动可能会被垃圾回收,而您的服务将保持活动状态。这不是问题,除非出于某种奇怪的原因,您需要服务维护对活动的引用(例如,如果您需要从服务流式传输数据到活动)。 - David
这不是问题。我的想法是实现一个文件记录器,而不是Log,它可以在主应用程序(在这种情况下是服务)被销毁时刷新其缓冲区。由于Application类没有该方法,所以我目前甚至没有尝试。 - 2dvisio

2

如何在Android关闭我的应用程序实例时全局检测到?

你无法做到这一点。用户/环境可以在生产中手动终止应用程序。Android不会给你任何反馈。

附言:如果您正在使用模拟处理环境,则可以查看应用程序 onTerminate 方法。


0

1
是的,但我有几个活动,并希望在Android终止我的应用程序进程时得到通知。当活动未被使用时,它们将关闭,但应用程序进程应该仍然保留在内存中。但是,在某些情况下,Android仍会关闭应用程序,如何处理此事件? - David
有一个事件Application::onTerminate(),但根据API的说明,它只在模拟器上运行应用程序时调用。 - David
这可能是解决方案的一部分。从这个意义上讲,只要一个活动关闭,我也可以立即刷新记录器。但是,我仍然需要知道整个应用程序何时关闭,而不仅仅是每个单独的活动。非常感谢您的努力! - 2dvisio

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接