Android 重写onBackPressed()方法 遇到的问题

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();
        
    }        

 

posted @ 2015-04-15 13:03  Michelle's Home  阅读(1216)  评论(0)    收藏  举报