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

如何在android上保存临时数据?,android,caching,storage,temporary,Android,Caching,Storage,Temporary,如何保存一些临时数据,以便在关闭应用程序时所有数据都消失?我尝试过SharedReferences,但当我再次打开应用程序时,数据似乎仍然存在 我听说你可以将数据保存到一些高速缓存中,但我真的不希望在应用程序仍在运行时内存被“填满”时数据会消失。也许我应该用一些全局变量?并不是说我知道如何才能让它发挥作用 我的简单应用程序是一个“游戏”,当你更进一步时,它会打开和关闭活动。这基本上是一个充满愚蠢图片的游戏。在一个活动中完成的内容应该保存在某个地方,因此,如果我返回,我可以加载数据,并使其看起来像

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

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

我的简单应用程序是一个“游戏”,当你更进一步时,它会打开和关闭活动。这基本上是一个充满愚蠢图片的游戏。在一个活动中完成的内容应该保存在某个地方,因此,如果我返回,我可以加载数据,并使其看起来像活动关闭前一样。我希望你明白我的意思

您知道我如何存储一些在您需要时也可以轻松访问的信息吗。

使用全局变量

onCreate
之前定义变量,如:

inti
String s=“myString”

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


希望我能帮上忙:)

您可以使用全局变量,然后使用意图将它们从一个活动传递到另一个活动。为此,请使用以下方法:

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");
}

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

@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();    
}
据我所知,您不知道活动的生命周期,所以本文将解释如何使用它们


仅使用常规类变量保存数据有什么问题?当活动完成时,数据将被垃圾收集为什么不使用片段?您可以向backback添加一个片段,这可能有助于您的原因,所有处理都可以在一个活动中完成,您可以在其中存储临时数据,也可以存储您要存储的数据?对象?我不熟悉堆栈溢出,我真的很想知道为什么人们会对你的答案投反对票,而没有解释为什么……我没有投反对票,但Java中没有全局变量。此外,您所称的全局变量实际上是一个实例变量,甚至不是类变量。这就是我所说的:p谢谢你,好主意!但是,如果你知道我的意思,过一段时间我回到“活动”时,变量将有其“实例”值。然后通过Bundleexcept onDestroy传递它,操作系统并不总是立即调用它,因此当应用程序再次打开时,如果应用程序仍在内存中Pause()它也是解决方案。这是如何工作的?在代码中的何处插入delete方法?是否有某种方法可以编程,以便每次关闭应用程序时,来自sharePreferences的所有数据都会消失?onDestory(),这不是关闭活动的方法吗?(很抱歉我的新手问题;)谢谢你的提示!但那真的好吗?我的意思是,我可能会有很多活动的变量。从一项活动到另一项活动,把它们一直传递下去,这不是有点过分吗?是的,可能是。你可以这样做的一件事是每次启动应用程序时,清除SharedReferences。这将确保每次启动/重新启动应用程序时都是清晰的。