旋转活动后,活动结果代码不正确

时间:2015-09-27 00:50:26

标签: android android-activity

我有两个活动A和B. A启动活动B.在活动B中,我在按钮单击处理程序中调用setResult(RESULT_OK,intent)而不调用finish() - 这是理想的行为。

旋转B并按下后,A的onActivityResult接收到resultCode的RESULT_CANCELED,而不是RESULT_OK。

我知道这是因为活动B在旋转时被破坏了。确保从B返回正确的结果代码的常见做法是什么?

我最初的想法是在onSaveInstanceState中保存mResultCode。

1 个答案:

答案 0 :(得分:1)

将结果保存在onSaveInstanceState中,并在onRestoreInstanceState方法中再次设置结果。

  

onRestoreInstanceState:

     

当活动出现时,在onStart()之后调用此方法   从之前保存的状态重新初始化,在此处给出   savedInstanceState。大多数实现都会使用   onCreate(Bundle)恢复他们的状态,但有时候   在完成所有初始化之后,这里可以方便地完成   或者允许子类决定是否使用默认值   实现。此方法的默认实现执行   恢复之前被冻结的任何视图状态   的onSaveInstanceState(束)。

     

在onStart()和onPostCreate(Bundle)之间调用此方法。