0

我正在做的是一个简单的游戏,当被击败时,它会进入一个新的活动,在那里它启动一个 AsyncTask 并将用户分数提交给服务器,服务器以一系列分数响应(比我好一点,比我差一点) .

我想要做的是持久化这个数组,但只针对这个屏幕,然后用户存在特定的屏幕数据将被遗忘。游戏总是横向的,所以我不需要担心屏幕旋转,但是用户可以跳出应用程序,当他回来并且应用程序没有被杀死时,它应该恢复到那个屏幕,就像它一样,但是数据已经消失了(并且异步任务再次开始),所以我想我需要以某种方式保留该数据,但将其写入数据库似乎太多了,因为我需要担心首先删除它等等等等。

所以我想知道,在这种情况下你会使用什么样的技术来持久化数据?作为 Application 对象中的成员变量?临时表?保存的实例(即使将 arraylist 放入 savedInstanceState 会很痛苦)

谢谢!

4

2 回答 2

1

我建议使用onSaveInstanceState. 这是为这种情况设计的。

事实上,这并不痛苦。. _ _ _ onCreate_

如果您的数据类像持有String(name) 和int(score)一样简单,Parcelable那么如果您以前没有实现过它,那么制作是一个很好的练习。

于 2013-05-11T07:58:39.070 回答
0

在某些时候,您的问题并不清楚。

我想要做的是持久化这个数组,但只针对这个屏幕,然后用户存在特定的屏幕数据将被遗忘。

通过这一行,您似乎仅在活动运行时(在前台或后台)才保留数据。所以在这种情况下,不需要将数据存储在其他地方而不是类变量。因此,如果这是您想要的,那么您可能正在 onResume 中调用 asynctask。所以在这种情况下调用 onCreate 中的 asynctask。

但是,如果您想在应用程序关闭后仍然保留数据,那么您可以使用 SharedPreferences 来存储数组。

如果您可以发布代码,将更容易了解您的问题。

于 2013-05-11T03:47:41.200 回答