android onNewIntent 为什么要在onNewIntent的时候要显示的去调用setIntent
来源:互联网 发布:淘宝订购软件有用么 编辑:程序博客网 时间:2024/05/22 14:33
原因:
当调用到onNewIntent(intent)的时候,需要在onNewIntent() 中使用setIntent(intent)赋值给Activity的Intent.否则,后续的getIntent()都是得到老的Intent。
@Override protected void onNewIntent(Intent intent) { super.onNewIntent(intent); setIntent(intent); initIntentData(); }
onNewIntent调用时机 :
如果IntentActivity处于任务栈的顶端,也就是说之前打开过的Activity,现在处于
I/@@@philn(12410): onPause
I/@@@philn(12410): onStop 状态的话
其他应用再发送Intent的话,执行顺序为:
I/@@@philn(12410): onNewIntent
I/@@@philn(12410): onRestart
I/@@@philn(12410): onStart
I/@@@philn(12410): onResume
对应的lanchumodel 必须为singtop 或者singTask;
launchMode为singleTask的时候,通过Intent启到一个Activity,如果系统已经存在一个实例,系统就会将请求发送到这个实例上,但这个时候,系统就不会再调用通常情况下我们处理请求数据的onCreate方法,而是调用onNewIntent方法,不要忘记,系统可能会随时杀掉后台运行的Activity,如果这一切发生,那么系统就会调用onCreate方法,而不调用onNewIntent方法,一个好的解决方法就是在onCreate和onNewIntent方法中调用同一个处理数据的方法
参考资料:
http://www.cnblogs.com/zenfly/archive/2012/02/10/2345196.html
http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2015/0520/2897.html
我就有一个需求,当时我不知道onNewIntent这回事,结果就悲剧了,自己做不出来。后来同事提醒,才知道。恩,过来人就是过来人。
就是比如:
我当前在activity A在 tab a 页面,然后,来了一条push,我现在要跳转到tab b, 但是我这个activity A必须是一个,不能点一个push 就一个,那么怎么做呢?怎么在不启动activity的情况下,改变tab, 这时候onNewIntent就出现了。 在里面处理一个想要切换到哪个tab,然后跳转,就ok了。
- android onNewIntent 为什么要在onNewIntent的时候要显示的去调用setIntent
- Android:onNewIntent的调用时机
- android onNewIntent的调用时机
- 为什么要复写onNewIntent
- OnNewIntent 的调用
- onNewIntent的调用机制
- OnNewIntent的调用时机
- Android 关于onNewIntent的方法调用
- Android onNewIntent的应用
- Android onNewIntent的应用
- Android onNewIntent的应用
- android的onNewIntent
- Android:onNewIntent的使用
- onNewIntent的应用 android
- android onNewIntent 的用法
- onNewIntent在Activity设置为singleTask时候的使用
- Android 复用Activity要注意的细节onNewIntent
- 【Android】onNewIntent调用时机
- 伸缩模型
- Oracle job procedure 存储过程定时任务
- android中lambda表达式的使用,以及如何引入
- docker
- react native 刷新界面机制DeviceEventEmitter
- android onNewIntent 为什么要在onNewIntent的时候要显示的去调用setIntent
- 孩子的成长,我会有足够的耐心,只要我拥有我的正确教育目标,就不怕。
- [User Defaults] Attempt to set a non-property-list object () as an NSUserDefaults/CFPreferences valu
- Linux学习(一):常用命令
- C++排序之直接选择排序法
- 343. Integer Break -Medium
- 错排问题综合
- JS鼠标事件
- RTP封装h264