一些安卓手机用户倾向于将“不保留活动”标志设置为真。这会在活动中触发意图并在 onActivityResult 中侦听结果时造成一些麻烦。Facebook的这个特定错误中解释了类似的场景。
据 Faebook 的工程师称,
仅当开发人员选项:“不保留活动”设置为 ON 时才会发生这种情况。这意味着,一旦您离开,Android 将立即销毁您的活动。即使在正常情况下不应设置此选项,正确的开发方法是将此选项设置为 true,以便模拟您的活动被破坏的可能场景。
这种情况应该如何处理?
一些安卓手机用户倾向于将“不保留活动”标志设置为真。这会在活动中触发意图并在 onActivityResult 中侦听结果时造成一些麻烦。Facebook的这个特定错误中解释了类似的场景。
据 Faebook 的工程师称,
仅当开发人员选项:“不保留活动”设置为 ON 时才会发生这种情况。这意味着,一旦您离开,Android 将立即销毁您的活动。即使在正常情况下不应设置此选项,正确的开发方法是将此选项设置为 true,以便模拟您的活动被破坏的可能场景。
这种情况应该如何处理?
您需要 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");
}