onActivityResult的各种"坑"
来源:互联网 发布:编程珠玑 第3版 pdf 编辑:程序博客网 时间:2024/06/05 10:15
最近写了一个东西,其中需要用到Activity的回传值的问题,当时没有用消息总线,也就是EventBus,只是用了startActivityForResult() 和 onActivityResult() 方法来传递或接收参数,谁知道遇到了各种坑,下面给大家分享一下。
一、执行了startActivityForResult()方法之后,第二个Activity还没有做任何操作,onActivityResult() 就被执行了,我X,这是什么情况?各种百度,各种Google,最后得出的结论是:这与Activity的启动模式有关,所有需要传递或接收的 Activity 不允许设置singleInstance或singleTask的启动模式,只能设为标准模式,否则系统将在 startActivityForResult() 后直接调用 onActivityResult()。
二、onActivityResult始终不被执行,这又是什么情况,Debug确定这个方法确实没执行。造成的原因:startActivityForResult(intent, -1);是第二个参数的问题,该参数必须>=0才能在返回值,只要随便修改为一个>=0的整数,方法就能被执行。
这几个错误说起来不大,但是一旦遇到就非常浪费时间,错误报的不明显,可以说是根本看不懂。我希望大家以后遇到这种坑能绕过,别再这种事上浪费时间,除非你对AndroidAPI很熟悉。不然我提倡大家在数据传递的时候尽量用解耦框架来完成,比如消息总线,这样遇到的问题会少。
0 0
- onActivityResult的各种"坑"
- onActivityResult不执行 或者 onActivityResult的解决方法
- 关于Activity的onActivityResult
- onActivityResult的用法
- onActivityResult的用法
- Android onActivityResult()的问题
- Android:onActivityResult的使用
- onActivityResult的用法
- Android:onActivityResult的使用
- fragment 的onActivityResult
- onActivityResult 的用法
- onActivityResult(),startActivityForResult()的使用
- onActivityResult的用法
- onActivityResult的用法
- onActivityResult的一些事儿
- onActivityResult 的使用
- onActivityResult的用法
- onActivityResult方法的使用
- Swift实现带有缓存的播放器
- du 使用详解 查看一级目录大小
- Cache的替换策略
- hdu 2489 Minimal Ratio Tree【Dfs+kruskal】
- hdu 2824 The Euler function(欧拉函数)
- onActivityResult的各种"坑"
- Android开发中获取crash信息
- window 上操作 linux 系统 3 ----CURL
- Linux安装NS3
- class 的isa指针
- PopupWindow遮住虚拟键盘
- http
- 聊聊数据库中的关键字——字段、属性、列、元组、记录、表、主键、外键
- Qt加载本地html文件 并且调用JS的函数在Qt中使用