应用程序类和对象状态

时间:2012-09-27 14:42:50

标签: android

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

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

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

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

1 个答案:

答案 0 :(得分:2)

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

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

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

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

希望它有所帮助!