Android 上最“耐死”的组件是什么?
-
26-09-2019 - |
题
我正在寻找最合适的类作为从我的活动调用的异步任务的调度程序。
我认为这可能是其中之一:
- 的子类 应用;
- 的子类 服务;
- 我自己的 静止的 东西。
至于我 - 实施第三个选择更简单。但问题是它会比Service或Application更“耐死”吗?另外,很有趣的是,什么会活得更久——应用程序还是服务?我的猜测是,应用程序的生命周期与应用程序(Android 中的任务)进程的生命周期相同。
所以基本上我需要根据它们的“抗死亡”质量来排列这些选项,因为我想依赖最“静态”的东西。
更新:
最初这个问题是在 2010, ,当时(1)Android 对于开发人员来说是新平台,(2)Google 文档对于应用程序组件生命周期和整个应用程序进程生命周期过于模糊(在某些情况下甚至具有误导性)。
解决方案
你绝对应该使用 服务.
这背后的主要原因—— Service
有自己的记录 生命周期, ,而应用程序则不然。 Application
实例,就像任何静态变量一样,几乎可以随时被系统杀死,您将不会收到任何回调,也无法停止此过程。因此,任何未保存的数据(所有静态变量)都将丢失。
另一方面, Service
至少不能被系统默默杀死 onDestroy()
应该首先调用方法。通过这样的回调,您可以将状态保存到某些持久内存(如 SharedPreferences、文件、数据库等),并在下次应用程序或服务启动时恢复该状态。
不隶属于 StackOverflow