Android singleTop的应用

来源:互联网 发布:网络的利与弊初中作文 编辑:程序博客网 时间:2024/05/01 03:54

    最近做的应用,碰到了一个Activity跳转的问题,大概就是A->B->C->D,最后从D跳转到A,然后在A中按返回键要返回A之前的Activity,于是我首先想到将A的launchMode设置为singleTask。这样设置之后,确实达到了效果,但是在A中按返回键,返回到之前的Activity无法回调onActivityResult方法了,因为A之前的Activity要做一些刷新操作,所以这样设置之后,刷新操作就无法完成了,导致这种状况的原因我不是很清楚,但是我找到了相应的解决办法,就是把A的launchMode设置为singleTop,然后D中跳转到A的intent加上intent.setFlag(Intent.FLAG_ACTIVITY_CLEAR_TOP),加上这样一句话之后,跳转回A的时候,会把Task中A上面的Activity都干掉,然后因为A是singleTop模式,所以不会重新创建一个新的实例,而是用原来Task中的A的实例,这样目的就达到了。

    问题解决了,也有一些收获,首先就是跳转的时候加上intent.setFlag(Intent.FLAG_ACTIVITY_CLEAR_TOP)会清除Task中目标Activity上面的所有Activity,但即使这样,如果目标Activity的launchMode没有设置为singleTop的话,跳转之后Task中会有两个一样的目标Activity实例,所以两者结合,才能达到我想要的效果。这样的话,问题也来了,为什么设置为singleTask之后,返回上一个Activity无法回调onActivityResult了呢?singleTask到底是个什么样的模式呢?这些都等着我去学习和弄的更清楚。
原创粉丝点击