最近写了一些应用程序,我被一个问题阻止了。
在这个应用程序中,我有两个活动:A 和 B。在活动中,每次 GPS 坐标发生变化时,AI 都会从网上下载对象列表。对于这项活动,有与 GPS 和 Internet 连接呼叫连接的绑定服务。然后将这些对象放入根据它们的名称创建的列表中,按下其中任何一个后,我可以打开传递该对象的 B 活动,并在活动 B 中从该对象获取更多信息。
Activity B 没有任何绑定服务,它只获取对象内部的内容并显示它。
因为活动 A 中的绑定服务在 onStop 中未绑定,所以当我使用后退箭头返回它时,需要一段时间才能再次下载所有内容。更有趣的是,列表仍然被填满,但那些只是名称,实际的对象列表不存在,并且在返回任何名称后按下任何名称都会导致 OutOfBoundException。
所以,我的问题是,在下载新的(或相同的)列表之前,你会建议在我进行活动 A 时保存这些对象并在回来时检索它们。
我试过了:
onRestoreInstanceState()
withonSaveInstanceState()
, 因为在那里你可以保存 parcelable 列表,但是活动 A 没有这么快被破坏,所以没有调用onRestoreInstanceState()
;Shared preferences
,但这是一个不好的选择,因为你不能在那里保存列表;ContentValues
而且content resolvers
,糟糕的选择,因为你不能保存列表。
你还有什么想法,怎么做?
哦,我忘了提,我假设列表中最多可以有 100 个对象,每个对象有 5 个字段。