在回答这个问题时,请考虑一下我是Android新手的事实。
在我的应用活动A 中明确调用活动B ,必须向用户提供来自用户的一些数据(即日期)。当用户按下完成按钮时,活动B 会返回。
但是如果用户按下返回按钮,我得到的是运行时异常失败,提供结果。
有任何线索吗?
答案 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