如何从应用程序保存和加载信息到手机?

时间:2011-05-14 20:08:05

标签: java android eclipse

我的应用程序是一个基本的高尔夫计数器,主要是一组包含2个整数的“洞”对象;孔号和行程数。

我试图在应用程序被杀死时将信息保存到手机中,然后将其读回并使用String.split()Integer.parse()将信息写回数组。< / p>

我使用OnPause()OnResume()并且我一直在测试我的应用程序,按后退箭头按钮查看它是否正在保存。但我似乎无法让它发挥作用。

我是否正确使用OnPause()OnResume()

3 个答案:

答案 0 :(得分:0)

如果还不熟悉它,那么值得阅读http://developer.android.com/guide/topics/data/data-storage.html

答案 1 :(得分:0)

正如您在附图中看到的那样。 OnPause()和OnResume()是正确的地方:

enter image description here

您应该检查您的代码。你是如何保存数据的?怎么回读?做一些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 []我很难完全清楚你想要的那样),而不是处理所有分裂和解析。现在,如果你试图添加它们以便每次退出时,你的洞和罢工都被添加到一个不断增长的阵列中,这有点复杂,如果是这样的话,我也可以帮助你。