所以我做了一个基本的应用程序。它包括3个活动; A,B和C. A是主屏幕,有一个按钮'新游戏'它导致B和另一个按钮继续'导致C.在B中,用户可以选择他们的难度,并根据用户点击的内容,C将执行。如果用户返回A并按下继续按钮,则C将与保存的共享首选项一起加载。
我首先在我的C类中创建共享首选项。调用onPause()
时,我通过以下方式创建共享首选项:
SharedPreferences pref = getSharedPreferences("brainData", MODE_PRIVATE);
SharedPreferences.Editor editBrainData = pref.edit();
并将所需的变量放入其中。在我的onStart()
方法中,我通过获取SharedPreferences pref = getSharedPreferences("brainData", MODE_PRIVATE);
并使用pref.getInt,pref.getBoolean等来加载变量。我不确定这些是否是保存和加载到共享首选项文件的好地方
现在我遇到了问题。每当用户完成并输出分数时,我希望用户在删除共享偏好数据的同时转到A.我试过了:
SharedPreferences pref = getSharedPreferences("brainData", Context.MODE_PRIVATE);
pref.edit().clear().commit();
但是这似乎并没有删除它,因为在完成游戏后,当我返回A并按继续时,它仍会将变量加载到绝对最后播放的时间点。