android - 当设备将 "do not keep activities"设置为 ON 时如何处理?

标签 android android-intent android-activity

一些 Android 手机用户倾向于将 “不保留 Activity ” 标志设置为 true。这会在 Activity 中触发 Intent 并在 onActivityResult 中监听结果时造成一些麻烦。 particular bug 中解释了类似的情况在 Facebook 上。

据 Faebook 的工程师说,

This ONLY happens when developer options : "do not keep activities" is set to ON. This means, Android will immediately destroy your activity as soon as you leave it. Even though in normal situation this option should not be set, correct way to develop is with this option set to true so to simulate a POSSIBLE scenario where your activity gets destroyed.

应该如何处理这种情况?

最佳答案

你需要 onSaveInstanceState() 和 onRestoreInstanceState():

@Override
public void onSaveInstanceState(Bundle savedInstanceState) {
    super.onSaveInstanceState(savedInstanceState);
    savedInstanceState.putBoolean("bool", true);
    savedInstanceState.putDouble("double", 1.9);
    savedInstanceState.putInt("int", 1);
    savedInstanceState.putString("string", str);
}

@Override
public void onRestoreInstanceState(Bundle savedInstanceState) {
    super.onRestoreInstanceState(savedInstanceState);
    boolean flag = savedInstanceState.getBoolean("boolean");
    double count = savedInstanceState.getDouble("double");
    int size = savedInstanceState.getInt("int");
    String title = savedInstanceState.getString("string");
}

关于android - 当设备将 "do not keep activities"设置为 ON 时如何处理?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17808068/

相关文章:

android - android PopupWindow可以显示另一个PopupWindow吗?

android - Jetpack Compose 在方向更改时保存状态

Android - 在更新 SDK 版本 23 后添加至少一个带有 ACTION-VIEW Intent 过滤器的 Activity

android - 在 Android 应用中提交带有 POST 数据的表单

Android 将 ParseObject 发送到另一个 Activity

Android:重置按钮永久禁用另一个按钮

java - 在 MyApp 类中扩展 MultiDexApplication

android - FrameLayout 中的 fragment 未显示在 CoordinatorLayout 中

java - Intent.putExtra(String,Bundle) 与 Intent.putExtra(Bundle)

Android Kotlin 在其他 Activity 中调用函数