setResult() 这个方法需要在 finish() 方法 调用前 ,才可以 set 成功
activity返回result是在被finish的时候,也就是说调用setResult()方法必须在finish()之前。
那么如果在如下方法中调用setResult()也有可能不会返回成功: onPause(), onStop(), onDestroy(),
因为这些方法调用不一定是在finish之前的,当然在onCreate()就调用setResult肯定是在finish之前的
按BACK键从一个Activity退出来的,一按BACK,android就会自动调用Activity的finish()方法,然后设置resultCode为RESULT_CANCELED,也就不会返回任何数据了 .
解决方法就是在Activity里面捕获按BACK的事件,捕获到之后先setResult,然后自己来调用finish,就搞定了……把BACK事件直接自己给吞了
如果 测试 可以把setResult()方法 可以放在一个点击事件中 我是放在了onDestroy()方法里面 ,可以调用 到 StartActivityForResult()方法 ,但是获取到的ResultCode = 0
把setResutl()方法放到 一个返回按钮的点击事件中,一切正常了;
更多 基础跳转 参考资料 http://www.cnblogs.com/lijunamneg/archive/2013/02/05/2892616.html