Activity调用startActivityForResult,onActivityResult 无法正常回调

1.resultCode的值一直为0

问题描述:AActivity调用startActivityForResult()方法,启动BActivity,然后在BActivity的onBackPressed()方法中调用setResult()方法,设置返回值,结果调试发现,AActivity的onActivityResult()方法中,获取的resultCode的值始终为0;

问题原因:onBackPressed()方法中的 super.onBackPressed();问题。super.onBackPressed()是执行系统默认的操作,就是退出当前Activity,所以当我们重新这个方法时,不加super.onBackPressed(),就可以不退出Activity,执行自己的代码啦

解决办法:两种
方法一:
@Override
public void onBackPressed() {
setResult(10);
super.onBackPressed();
}

方法二:
@Override
public void onBackPressed() {
//将super.onBackPressed();注释掉
// super.onBackPressed();
setResult(10);
finish();
}

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容