读书人

startActivityForResult 跟 startActi

发布时间: 2012-09-24 13:49:42 作者: rapoo

startActivityForResult 和 startActivity

首先说下这个问题的情景:

当前的软件有一个主Activity A1 并且从A1可以跳转到A2 A3两个界面 而A2 A3也可以回退到A1 同时在这之间 需要传递一些数据

第一种做法是:

?

@Overrideprotected void onActivityResult(int requestCode, int resultCode, Intent intent) {super.onActivityResult(requestCode, resultCode, intent);}

?其中就可以根据resultCode来进行不同的操作了

?

?

最后 两者之间又有什么区别呢

default的startActivity的LaunchMode如果在多次反复跳转的情况下 产生多个A1 A2的实例(LaunchMode包括standard,SingleTop,SingleTask,SingleInstance4种)这可能并不是我们期望的

?

当然还有一个问题 如果采用互相跳转 同时又采用SingleTask的mode 两者之间是不是就相等了。。至少从我的理解来看 是相同的 但是在这样的情况下 觉得startActivityForResult会更方便一些

1 楼 zhongxinhu 2011-12-30 mark! 2 楼 carlosk 2011-12-31 startActivityForResult在sigleTask模式下是无法使用的.

但经常会有一些Activity需要设置为sigleTask,并且还需要有拍照,找相册等等类似的需求,这样就很难协调.

我觉得这是Android API的一个不完善的地方. 3 楼 cookiejj2010 2011-12-31 carlosk 写道startActivityForResult在sigleTask模式下是无法使用的.

但经常会有一些Activity需要设置为sigleTask,并且还需要有拍照,找相册等等类似的需求,这样就很难协调.

我觉得这是Android API的一个不完善的地方.

的确 在SingleTask下 onActivityResult方法在最初就被执行了 而真正返回的时候却没有执行

读书人网 >移动开发

热点推荐