如何从Android应用程序的上次运行中保存和检索数据?

时间:2012-03-14 04:14:58

标签: android save continue

我必须为我的大学课程作品创建一个小型的Android应用程序,它提出了10个数学问题,并从用户那里得到答案来计算分数。

程序应该有一个带有“新游戏”按钮和“继续”按钮的主屏幕。

如果用户按下继续按钮,如何编程在应用程序运行期间保存数据并从存储位置检索数据以从该点继续? (我应该为这样的任务寻找什么样的方法?)

提前致谢。

4 个答案:

答案 0 :(得分:1)

只需使用首选项来存储和检索代码中的值。这是代码段

//Set Preference
SharedPreferences myPrefs = getSharedPreferences("myPrefs", MODE_WORLD_READABLE);
SharedPreferences.Editor prefsEditor;  
prefsEditor = myPrefs.edit();  
prefsEditor.putString("REFKEY", valuetobestored);
prefsEditor.commit();

//Get Preferenece  
SharedPreferences myPrefs;  
myPrefs = getSharedPreferences("myPrefs", MODE_WORLD_READABLE);
String output=myPrefs.getString("REFKEY", "");

答案 1 :(得分:0)

这取决于您要存储的数据类型。如果它是非常基本的,您可能希望将它们存储为onSaveInstanceState方法中的名称值对,或Preferences方法中的onPause,如果它有点复杂,您可能会想要存储在SQLiteDB

guide

  

在放置之前调用onSaveInstanceState(Bundle)方法   在这样的背景状态下活动,让你可以省去任何活动   动态实例状态在您的活动中进入给定的Bundle,即可   如果活动需要,后来收到onCreate(Bundle)   重新创建。有关更多信息,请参阅“进程生命周期”部分   流程的生命周期如何与其活动相关联   托管。 请注意,保存持久数据非常重要   onPause()而不是onSaveInstanceState(Bundle),因为后者是   不是生命周期回调的一部分,因此不会在每个回调中调用   文件中描述的情况。

这是您在onSaveInstanceState中保存数据的方式:Saving Android Activity state using Save Instance State

这是您可以在首选项中保存数据的方式:Making data persistent in android

答案 2 :(得分:0)

只需使用SharedPreferences。请查看此链接以获取更多详细信息。 2清晨给你一个我自己的例子:P

How do I get the SharedPreferences from a PreferenceActivity in Android?

只要应用程序安装在设备上,首选项就会持续。如果你删除它,它也会删除它们。

另一件很酷的事情你可能想知道,如果你想检查你的应用程序是否在第一次运行,那么只需检查存储的布尔值(或者第一次运行时不存储) )在设备上。 :)如果没有一个(它将返回默认值),那么只需将其值更改为true或者其他内容,并且每次应用程序运行时都会检查它,您将知道它不是第一次运行:)

希望这会有所帮助,欢呼。

答案 3 :(得分:0)

可能这不是最好的解决方案..但这是一种获得所需功能的方法.. 在点击继续按钮时输入此代码

finish();
                 Intent k=new Intent(youractivitytivity.this,youractivity.class);
k.putExtra("qno",x+1)<---- next question number to appear on screen(x is the present question number)
k.putExtra("score",bool)<--- if the answer is right or wrong)
                 startActivity(k);

然后在你的活动的创建中...获取额外内容并检查你必须显示哪个问题... 我想你有10个问题......