我正在开发一个Android应用程序,并且我希望避免在使用相同额外的相同活动来源时重新加载类似数据。在Android中保存同一活动的多个实例状态
具体来说,当我用额外启动我的活动'A'时,我使用这个额外的来从服务器加载远程数据。 从这个活动中,我可以重新启动不同额外的'A'等等。
例子:
答:ID1 - >答:ID2 - > A:ID3
但是,它也可以是一个额外的,我已经装:
答:ID1 - >答:ID2 - >答:ID3 - >答:ID1
在这种情况下,我不会再要求服务器或失去活动叠加。根据我的理解,“onSaveInstanceState”允许保存一个Activity的一个实例,但在我的情况下,它是同一个Activity的多个实例(带有不同的额外值)。
那么,它是为同一个活动管理已保存实例状态(包)的列表的解决方案吗?或者是其他东西 ?
在此先感谢
首先,谢谢你的回答。现在我明白了onSaveInstanceState的好处。 我曾经想过要保存数据(例如在数据库中),但是,有一件事我没有提前指定。我收到的一些数据是API提供的图片,根据使用条款,我没有权限存储它们。这就是为什么,我试图恢复视图而不是数据。 – Barles 2013-02-08 16:01:25
我明白了。图像非常棘手,无法将它们保存到磁盘上会限制您的选择。有些事情要注意的是,图像(特别是Bitmaps,如果这就是你正在使用的)会占用大量内存,并导致OutOfMemoryException异常,这种情况太臭了。最好将所有可以存储在数据库中的数据存储起来,然后每次需要映像时都可以创建一个新的API调用。正如我提出的一种替代解决方案,您可以尝试某种类型的缓存,但这样做会更有效,并且可能会引入不稳定性。 – MattDavis 2013-02-08 16:13:01
是的,我会尝试存储所有我可以并依靠[Android通用图像加载器](https://github.com/nostra13/Android-Universal-Image-Loader)来管理缓存图片的数据。 – Barles 2013-02-08 22:22:36