我想在内存中保留一些对象,以便在我的应用程序的所有活动中进行操作,并且我还想在应用程序关闭时存储这些对象。哪种方法是最有效的?我能想到的一些可能性是:
1)在所有活动中保留对象的本地副本,序列化它们并通过intent传递它们。
2)在所有活动中保存对象的本地副本,序列化它们,并分别在活动恢复和暂停时进行文件读写。
3)使它们成为静态变量,但我不知道在这种情况下何时进行文件读/写操作?这种方法可能会泄漏内存。
4)使用Application对象,并将我的对象定义为该对象中的变量。因为它有一个明确的生命周期,比如活动,所以我可以相应地进行读/写。
发布于 2012-12-29 15:33:24
我推荐你的方法2。原因是没有“应用关闭”这回事。Android试图将其保存在内存中,直到内存被用于其他目的。然后你的应用程序的进程会被简单地杀死,你不会得到任何回调调用。
如果您谨慎地根据需要加载和存储对象,则可以使用单例或Application对象来缓存这些对象。然而,这也意味着,只有在应用程序进程终止时,才会回收用于它们的内存。
发布于 2012-12-29 16:15:34
这取决于你的数据。在某些情况下,所有方法都是好的。
我认为你有两个选择:
https://stackoverflow.com/questions/14079689
复制相似问题