关于Activity使用startActivityForResult()跳转后,onActivityResult()无法响应RESULT_OK的原因

来源:互联网 发布:java语言自学 编辑:程序博客网 时间:2024/05/24 16:16

最近碰到这个问题, 然后Google一番. 于是记录下来. 


去翻Android Developers网站的Reference, 在Activity的介绍中有段文字如下:



意思是当Activity的启动模式是singleTask时,这个Activity不会运行在该task任务栈中.并且会马上收到一个cancel result的信号.这就是原因了.比如Activity A 使用startActivityForResult()跳转到Activity B中,同时A的启动模式是SingleTask, 这时一调用startActivityForResult()去跳转B, A中的onActivityResult()方法会马上收到一个RESULT_CANCEL(值为0)的resultCode.这样RESULT_OK是无法被响应的.


解决方法: 直接将Activity A的启动模式去掉,使用默认的标准模式即可.如果不想多次创建A,可以将A的数据缓存下来,下次恢复A的时候再用,或者每次在A 回退到上层的事件中将A finish掉就ok.




0 0
原创粉丝点击