运行时异常:传递结果失败

时间:2011-11-21 19:28:25

标签: android android-activity

在回答这个问题时,请考虑一下我是Android新手的事实。

在我的应用活动A 中明确调用活动B ,必须向用户提供来自用户的一些数据(即日期)。当用户按下完成按钮时,活动B 会返回。

但是如果用户按下返回按钮,我得到的是运行时异常失败,提供结果

有任何线索吗?

3 个答案:

答案 0 :(得分:5)

问题很可能是您需要在活动A中检查取消的结果。

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {

    if (resultCode == Activity.RESULT_CANCELLED) {
        // Do something
    }
}

答案 1 :(得分:3)

我发现即使我检查了resultCode == Activity.RESULT_OK,它仍然会出错。我通过以下方式解决了这个问题:

 setResult(Activity.RESULT_CANCELED);
 finish();

我必须这样做:

setResult(Activity.RESULT_CANCELED, new Intent());
finish();

我还必须将此方法添加到onBackPressed()。

答案 2 :(得分:2)

您是否熟悉了活动生命周期?您需要确保在适当的生命周期方法中发生所有事情。例如,如果您在onStart()中打开某种类型的媒体而忘记在onStop()中关闭它,则可能会遇到运行时异常。

如果不查看代码,很难准确说明原因是什么,但我建议您查看活动生命周期并进行必要的更改。如果您仍有问题,请提供代码示例。 Logcat应该告诉你哪一行代码导致异常,你至少可以包含那部分吗?

请参阅http://developer.android.com/images/activity_lifecycle.png

Android Activity Lifecycle