当前位置: 代码迷 >> Android >> Activity android:launchMode="singleInstance" 与 startActivityForResult解决思路
  详细解决方案

Activity android:launchMode="singleInstance" 与 startActivityForResult解决思路

热度:104   发布时间:2016-05-01 12:07:47.0
Activity android:launchMode="singleInstance" 与 startActivityForResult
有一个Activity,叫A,在这个Activity种请求其他页面叫做BActivity里的内容,所有发了个Intent: startActivityForResult

已经调好的程序,后来在不经意间,把A设置了个单实例android:launchMode="singleInstance"

之后 startActivityForResult就再也不好用了。

通过log可以看到, intent发出以后,3ms时间就会在A的onActivitResult中收到返回消息。当然返回的消息是不正确的啦。

去掉A的单实例,就好了。

请问,这是为什么呢,单实例为啥会影响到startActivityForResult工作不正常了呢。
我的android系统是4.2

------解决方案--------------------
当你把Aactivity设置成“singleInstance"模式以后,该activity就会有一个独享的任务栈,当它一旦被创建就不会重新创建,当它启动Bactivity后,Bactivity可能需要返回给Aactivity,但是此时Aactivity不会重新创建,不会执行回调,所以不好用了。
  相关解决方案