首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在Android中处理对象

在Android中处理对象
EN

Stack Overflow用户
提问于 2012-12-29 15:29:15
回答 2查看 126关注 0票数 0

我想在内存中保留一些对象,以便在我的应用程序的所有活动中进行操作,并且我还想在应用程序关闭时存储这些对象。哪种方法是最有效的?我能想到的一些可能性是:

1)在所有活动中保留对象的本地副本,序列化它们并通过intent传递它们。

2)在所有活动中保存对象的本地副本,序列化它们,并分别在活动恢复和暂停时进行文件读写。

3)使它们成为静态变量,但我不知道在这种情况下何时进行文件读/写操作?这种方法可能会泄漏内存。

4)使用Application对象,并将我的对象定义为该对象中的变量。因为它有一个明确的生命周期,比如活动,所以我可以相应地进行读/写。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-12-29 15:33:24

我推荐你的方法2。原因是没有“应用关闭”这回事。Android试图将其保存在内存中,直到内存被用于其他目的。然后你的应用程序的进程会被简单地杀死,你不会得到任何回调调用。

如果您谨慎地根据需要加载和存储对象,则可以使用单例或Application对象来缓存这些对象。然而,这也意味着,只有在应用程序进程终止时,才会回收用于它们的内存。

票数 2
EN

Stack Overflow用户

发布于 2012-12-29 16:15:34

这取决于你的数据。在某些情况下,所有方法都是好的。

我认为你有两个选择:

  • 将数据保存在sqlite中。它比文件更容易,也更快。当活动开始时,向数据库请求所需的数据并显示出来。(如果确实需要,可以使用文件)
  • 创建一个单独的类来存储数据。数据将被加载到内存中,您可以非常快速地访问它。当数据更改时,将其保存到sqlite或文件中。谷歌“在活动之间共享数据”
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14079689

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档