1
13
这个答案的第一部分真的很古老——参见下面的 正确的 做这件事的方法 可以使用应用程序对象存储应用程序持久对象。 This Android FAQ 也谈到这个问题。 像这样:
这个 正确的 方式 : 当第一次写下这个答案时,活动生命周期的文档不如现在的好。阅读 Saving Activity State 活动文档的部分帮助我们了解Android希望我们如何保存状态。基本上,有两种情况下您的活动开始:(1)作为一个新的活动和(2)由于配置更改或当它被破坏后,由于内存压力重新创建。当您的活动因为是新活动而启动时,则saveInstanceState为空。否则不为空。如果它为空,那么您的活动应该从头开始初始化。片段与活动非常相似,我为我的 AnDevCon-14 slide deck . 你也可以看看 sample code 更多详细信息,请参阅我的andevcon-14演示。
重新编写上一个示例看起来像下面的代码。我确实稍微改变了语义——在第二个版本中,我假设字符串
|
2
0
另一种保存静态数据的方法也是邪恶的,就是让您的活动启动一个单例类。这个单例将保持对自身的静态引用。
在活动的onCreate()方法中,您可以访问/构建singleton和任何可能需要的数据。这样,您的活动或应用程序可以被销毁或重新创建任意次数,只要您的进程的内存空间被保留,您就可以 应该 好吧。 这是一个邪恶的颠覆性黑客,所以没有承诺;-) |
Abhilash Das · 输入文本时,编辑文本与工具栏重叠 1 年前 |
Community wiki · 局部变量可能尚未初始化 1 年前 |
jvargas · 如何获取上个月的第一天和最后一天以及一年的第一天 1 年前 |