android Activity android:launchMode="singleInstance" 与 startActivityForResult
先记录一下现象,还不晓得原因:
有一个Activity,叫A,在这个Activity种请求其他页面叫做BActivity里的内容,所有发了个Intent:startActivityForResult
已经调好的程序,后来在不经意间,把A设置了个单实例android:launchMode="singleInstance"
之后startActivityForResult就再也不好用了。
通过log可以看到, intent发出以后,3ms时间就会在A的onActivitResult中收到返回消息。当然返回的消息是不正确的啦。
去掉A的单实例,就好了。
不知道为什么,求解中... ...
问题已解,呵呵,引用一下happy_ant大神的回帖:http://bbs.csdn.net/topics/390325389
当你把Aactivity设置成“singleInstance"模式以后,该activity就会有一个独享的任务栈,当它一旦被创建就不会重新创建,当它启动Bactivity后,Bactivity可能需要返回给Aactivity,但是此时Aactivity不会重新创建,不会执行回调,所以不好用了。
startActivityForResult的文档说明如下:
NotethatthismethodshouldonlybeusedwithIntentprotocolsthataredefinedtoreturnaresult.
Inotherprotocols(suchasACTION_MAINorACTION_VIEW),
youmaynotgettheresultwhenyouexpect.Forexample,
iftheactivityyouarelaunchingusesthesingleTasklaunchmode,
itwillnotruninyourtaskandthusyouwillimmediatelyreceiveacancelresult.
谢谢happy_ant指点迷津
更多相关文章
- Android Google Map实例 - 创建一个Google Map例程(Android mapv
- FFmpeg+OpenSL+OpenGL+Mediacodec 的视频播放SDK源码和实例APP
- Android应用程序键盘(Keyboard)消息处理机制分析(27)
- Android消息推送接收后,通知栏的显示
- Android应用程序键盘(Keyboard)消息处理机制分析(17)
- 45个android实例源码,很好很强大
- android EditText实例 删除按钮 与内容监听