最小化app后,变量值会重置

时间:2014-06-06 06:52:11

标签: android

我正在制作这个充当游戏计算器的Android应用程序。计算器会告诉您所选内容的成本,并向您显示总价。

例如,如果在微调器上选择AR,则表示它的成本为1200.如果选择WS,则会将成本显示为2400.

但是,如果此应用程序针对大量团队(30分钟或更长时间)进行了最小化,则价格值将重置为默认值(0)。微调器仍在AR上,但价格为0.我需要在重新计算值之前再次单击微调器。

有没有办法让我刷新它或防止丢失值?

5 个答案:

答案 0 :(得分:2)

这是由于View被刷新,因为当你点击主页按钮时它将调用onPause()方法然后如果你打开另一个应用程序它将在其他应用程序中授予一些内存而不是返回到onResume(),由于android的内存管理,它将转到onCreate()

enter image description here

<强>溶液

您需要在saveInstanceState protected void onSaveInstanceState(Bundle outState) { 方法中保存所有数据,然后在Oncreate中获取所有已保存的数据

答案 1 :(得分:1)

您需要在saveInstanceState方法中保存数据,然后在onRestoreInstanceState中将其恢复。之后,您需要填写视野中的字段。

Example

答案 2 :(得分:1)

这是由于移动设备的资源性质相对有限。

您应该将数据保存在更耐用的地方。您可能会发现这篇关于通用Data Storage的文章很有用。这个问题也应该是相关的:How do I save an Android application's state?

答案 3 :(得分:1)

活动中的onPause - 将您的值保存在SharedPreferences或Application(非活动)中。

活动中的onResume - 从此值更新微调器的选择项。

答案 4 :(得分:0)

您可以将数据保存到共享首选项,在onResume()方法中,您可以将该值设置回相应的字段。

Changed text at the runtime in textview but after relaunching application retrieving default data in textview in android