在Android应用程序中处理"不要保持活动"

FR0*_*73N 7 crash android android-activity

我有2项活动:在活动展示的信息给用户的列表,它的子活动,用户可以创建新的信息.

很明显,从第一个活动开始,我调用" startActivityForResult()",当用户将他想要的内容放入第二个活动时,我回到第一个活动,并在" onActivityResult()"函数中收到信息保存信息.

我的问题是"不要保持活动"选项.我读到这种情况发生在低内存电话中.但是,当设备关闭活动时,我们如何处理?

在我的示例中,当第二个活动被调用时,第一个活动被杀死,因此当我们返回到该活动时发生崩溃,并且我的信息丢失了.

处理这个问题的正确方法是什么?知道我无法在第二个活动中保存我的信息,因为我正在使用文件.

Max*_*tin 3

使用SharedPreferences来达到您的目的。顺便说一句,当您完全关闭 Activity 时,您可以使用此技术来存储数据。

获取您的类数据,使用它将其转换为字符串GSON并存储它。

加载时,只需将其从SharedPreferences字符串移动并转换回您的对象即可。

假设你的MyData课堂上充满了无用的信息。

MyData myData = ....;

SharedPreferences mPrefs = context.getSharedPreferences("MyPrefs", 0);
Gson gson = new Gson();
String toStore = gson.toJson(myData);


SharedPreferences.Editor editor = mPrefs.edit();
editor.putString("stored", toStore);
editor.commit();

 ....
Run Code Online (Sandbox Code Playgroud)

当您加载之前的 Activity 时:

String loadedMyDataStr = mPrefs.getString("stored", "");
MyData data = gson.fromGson(loadedMyDataStr, MyData.class );
Run Code Online (Sandbox Code Playgroud)