我的应用程序是一个基本的高尔夫计数器,主要是一组包含2个整数的“洞”对象;孔号和行程数。
我试图在应用程序被杀死时将信息保存到手机中,然后将其读回并使用String.split()
和Integer.parse()
将信息写回数组。< / p>
我使用OnPause()
和OnResume()
并且我一直在测试我的应用程序,按后退箭头按钮查看它是否正在保存。但我似乎无法让它发挥作用。
我是否正确使用OnPause()
和OnResume()
?
答案 0 :(得分:0)
答案 1 :(得分:0)
正如您在附图中看到的那样。 OnPause()和OnResume()是正确的地方:
您应该检查您的代码。你是如何保存数据的?怎么回读?做一些logcat调试输出......
也许您应该使用mySQL数据库来保存数据持久性。
答案 2 :(得分:0)
如果你要永久保存值,那么你需要像这样使用SharedPreferences:
(within onCreate)
...
SharedPreferences user_info = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
hole = user_info.getInt("hole", 0);
stroke = user_info.getInt("stroke", 0);
...
}
@Override
public void onPause()
{
super.onPause();
SharedPreferences user_info = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
user_info.edit()
user_info.putInt("hole", hole)
user_info.putInt("strike", stroke)
user_info.commit();
}
如果你不包括commit()
则没有任何反应。你也可以(我会)使用方法链接SharedPreferences
,我只是觉得我应该保持简单。
将它们留作int(或int []我很难完全清楚你想要的那样),而不是处理所有分裂和解析。现在,如果你试图添加它们以便每次退出时,你的洞和罢工都被添加到一个不断增长的阵列中,这有点复杂,如果是这样的话,我也可以帮助你。