您的位置:首页 > 移动开发 > Android开发

startActivity构成的Activity链中间断掉会如何?

2016-02-24 19:50 435 查看
不断调用
Activity.startActivityForResult()
,这样会构成一个Activity启动链条,当页面一层层返回时,
Activity.onActivityResult()
会被调用到。

但是,如果链条中的一个Activity提前关闭了,那会发生什么效果呢?提前关闭的Activity还能不能收到
onActivityResult()
呢?提前关闭的Activity之前的Activity还能不能收到
onActivityResult()
呢?

Activity的
launchMode
没有定义,为
standard
模式,启动Intent中也没有加入特殊的FLAG,最普通的启动方式。

一层层打开,在一层层关闭,log如下。

I/TAG: onCreate current level : 1
I/TAG: onCreate current level : 2
I/TAG: onCreate current level : 3
I/TAG: onCreate current level : 4
I/TAG: onActivityResult current level :3; data from level 4
I/TAG: onActivityResult current level :2; data from level 3
I/TAG: onActivityResult current level :1; data from level 2


在第二个页面,打开下一个页面,并关闭当前页面,之后一层层返回,效果如下。

I/TAG: onCreate current level : 1
I/TAG: onCreate current level : 2
I/TAG: onCreate current level : 3
I/TAG: onActivityResult current level :1; data from level 2


第二个页面提前关闭了,所以在第三个页面关闭时,它是收不到
onActivityResult
的。

第三页面关闭时回到了第一个页面,第一个页面时可以收到
onActivityResult
的,参数中的数据是第二个页面关闭时
setResult()
的数据。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  android