我想要做的是坚持这个数组,但仅限于此屏幕,然后用户存在将忘记特定的屏幕数据。游戏总是风景,所以我不需要担心屏幕旋转,但是用户可以跳出应用程序,当他回来并且应用程序没有被杀死时,它应该恢复到该屏幕,就像它一样,但是数据消失了(和异步任务再次启动),所以我想我需要以某种方式持久保存这些数据,但是将它写入数据库似乎太多了,因为我需要担心首先删除它等等。
所以我想知道,在这种情况下你会使用什么样的技术来保存数据?作为Application对象中的成员变量?临时表?保存的实例(即使将arraylist放在savedInstanceState中也会很痛苦)
谢谢!
答案 0 :(得分:1)
我建议使用onSaveInstanceState
。这是为这种情况而设计的。
事实上,这不是一种痛苦。在onCreate
中使用putParcelableArrayList及更高版本getParcelableArrayList。
如果你的数据类就像保持String
(名称)和int
(得分)一样简单,如果你之前没有实现,那么Parcelable
是一个很好的练习。< / p>
答案 1 :(得分:0)
在某些方面,你的问题不明确。
我想要做的是坚持这个数组,但仅限于此屏幕, 那么用户就会忘记特定的屏幕数据。
通过这一行,您似乎只在活动运行时(前景或后台)才持久保存数据。因此,在这种情况下,不需要将数据存储在别处而不是类变量中。因此,如果这是您想要的,那么您可能正在调用onResume中的asynctask。在这种情况下,请在onCreate中调用asynctask。
但是,如果您希望在应用程序关闭后仍然保留数据,那么您可以使用SharedPreferences来存储数组。
如果您可以发布代码,则更容易了解您的问题。