如何在android上保存临时数据?

时间:2014-08-13 19:47:37

标签: android caching storage temporary

如何保存一些临时数据,以便在关闭应用程序时所有数据都消失了?我尝试过sharedPreferences但是当我再次打开应用程序时,似乎数据仍然存在。

我听说你可以将数据保存到某个缓存中,但是如果内存在应用程序仍处于运行状态时被“填满”,我真的不希望数据消失。也许我应该选择一些全局变量?并不是说我知道如何才能让它发挥作用。

我的简单应用程序,即“游戏”,当您更进一步时,会打开和关闭活动。它基本上是一个充满愚蠢图片的游戏^^。已经在一个活动中完成的东西应该保存在某个地方,所以如果我回去,我可以加载数据并使其看起来像是在活动关闭之前。我希望你明白我在说什么..

我知道如何存储一些在您需要时也很容易访问的信息。

3 个答案:

答案 0 :(得分:5)

使用全局变量。

onCreate定义变量之前:

int i; 要么 String s = "myString"

然后您可以在任何功能中访问/更改它们。

希望我帮助过:)

答案 1 :(得分:2)

您可以使用全局变量,然后使用Intent将它们从活动传递到活动。为此,您可以使用:

Intent intent = new Intent(getBaseContext(), MYourActivity.class);
intent.putExtra("variableName", value);
startActivity(intent)

并在下一个活动中获取

Bundle extras = getIntent().getExtras();
if (extras != null) {
    String value = extras.getString("new_variable_name");
}

答案 2 :(得分:1)

您好,您可以将临时数据保存到sharedPreferences。通过这种方式,您可以更新插入并以正确的方式删除有关游戏的所有信息。如果您在关闭游戏后需要删除数据,请删除sharedPreferences生命周期中的onDestroy();

@override
public void onDestroy()
{
    super.onDestroy();
    SharedPreferences myPrefs = this.getSharedPreferences("examlePrefs");
    myPrefs.edit().remove("example");
    myPrefs.edit().clear(); 
    myPrefs.edit().commit();    
}

或者请使用。

@override
public void onStop()
{
    super.onStop();
    SharedPreferences myPrefs = this.getSharedPreferences("examlePrefs");
    myPrefs.edit().remove("example");
    myPrefs.edit().clear(); 
    myPrefs.edit().commit();    
}

我可以理解你不知道活动的生命周期。所以本文将解释如何使用它们。

http://developer.android.com/training/basics/activity-lifecycle/index.html