3

我一直在研究 Application 类和保持对象状态的方法,我在网上阅读了很多东西,包括 android 文档(生命周期、建议等),许多关于主题和其他东西仍然有一些疑问,我希望这部分对未来的发展非常清楚。我想这对于每个 android 开发人员来说都是一个常见的问题,所以我想知道关于它的经验(而不仅仅是文档)。所以我有一些问题:

1- Application 类可以从内存中删除或初始化为前台的应用程序?只是我有一个应用程序的子类,其中有一些保持状态的静态变量,我知道如果应用程序进入后台,它可以被杀死以获取内存然后重新启动,但是当它在前台时会发生吗?

2-如果操作系统可以随时擦除或初始化应用程序内存,那么通过数据库或文件保持对象状态的唯一可靠方法?(真的希望不是!!)

3-可以帮助解决此问题的任何其他提示。

4

1 回答 1

2

根据我的经验,您对文档所说的内容过度反应和过度思考。大多数应用程序不需要也不应该扩展应用程序。

1- 只有在最极端的情况下,应用程序才会在前台被杀死。所以你现在应该忘记这部分,只关心你的应用程序本身。如果发生这种情况,用户将从头开始重新启动您的应用程序。

您应该通过覆盖 onSaveInstanceState(Bundle outState) 和 onRetainCustomNonConfigurationInstance() 并在 onCreate(Bundle savedInstances) 和 getLastNonConfigurationInstance() 上读取它们的值来保持活动生命周期(非应用)的 2 状态对象。那些用于活动的方法可能已被弃用,我知道有些是,阅读文档,他们会告诉你哪些是片段的替代品。使用片段。状态也可以通过意图/捆绑从活动传递到其他活动。

3-要保持持久数据,您应该使用数据库和 SharedPreferences,活动状态使用可用的活动和片段回调。如果不知何故,您的应用程序有一些相当特殊的需求,您可以创建一个单例,但请相信我,99% 的应用程序不需要。

希望它有所帮助!

于 2012-09-27T15:12:18.000 回答