【发布时间】:2014-10-03 21:55:36
【问题描述】:
我已经使用 setResult(RESULT_OK, intent) 有一段时间了,现在遇到了一些奇怪的事情。
大部分时间,大约 3/4 的时间我进入一个活动然后使用以下代码退出它,该代码总是执行:
Intent intent = new Intent();
intent.putExtra(KEY_ENVIRONMENT_SURVEY, esurvey);
setResult(RESULT_OK, intent);
finish();
在返回的活动中,大多数时候返回RESULT_OK,但有时返回RESULT_CANCELLED,看起来很随机。这可能是什么原因造成的?是否可以在附加调查之前调用完成()(它是可打包的)并且默认为 RESULT_CANCELLED?如果是这样,我该如何解决?使用处理程序并使用 postDelayed 或检查是否设置了 RESULT_OK(我不知道该怎么做,所以请说明这是否是解决方案)?
谢谢!
【问题讨论】:
-
"如果子活动因任何原因(如崩溃)失败,父活动将收到代码为 RESULT_CANCELED 的结果。" developer.android.com/reference/android/app/Activity.html
-
是的,但是大多数时候该活动都在做它应该做的事情(从我所看到的 logcat 中没有什么不寻常的)。我想我需要进一步调查,看看这是否是原因。
标签: android start-activity activity-finish