2010-06-15 58 views
0

我有2个活动。在孩子的活动我已经把类似的东西在的onPause():为什么活动结果代码是不同的,然后我期望

if (isFinishing()) { 
final Intent intent = new Intent(); 
intent.putExtra(SOME_DATA, value); 

setResult(RESULT_OK, intent); 
Log.i("test", "Result set to RESULT_OK"); 
} 

在父活动我检查resultCode为当子活动被破坏,这是我已经注意到:

  1. 如果我摧毁(在某些情况下,我调用finish()),然后resultCode是RESULT_OK
  2. 但是当我通过按回车键销毁(我只在模拟器中它的ESC)杀死活动,然后resultCode读入父onActivityResult方法等于0(RESULT_CANCELD)。

“测试”日志在每种情况下读取的情况都是一样的。

回答

2

在onPause被调用到RESULT_CANCELED之后,最有可能是破坏您的活动的事件重置结果。这是有道理的,因为活动确实不是愉快地完成。

通过始终将结果代码设置为RESULT_OK,您试图完成什么?

+0

哦,我忘了这个问题。 这不是很有帮助,但是你的答案很可能是问题的解释,所以我会接受你的答案。 以及我如何解决问题:SharedPreferences;) – Fisher 2010-06-26 23:14:59

2

您不必在onPause方法中设置结果代码。您可以在获取数据的那一刻进行设置。每当您想要传回第一个活动的数据发生变化时,只需设置结果代码,然后以正确的方式返回到调用活动。

相关问题