android onNewIntent 为什么要在onNewIntent的时候要显示的去调用setIntent
原因:
当调用到onNewIntent(intent)的时候,需要在onNewIntent() 中使用setIntent(intent)赋值给Activity的Intent.否则,后续的getIntent()都是得到老的Intent。
@Overrideprotected 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应用程序中的多个Activity的显示创建和调用
布局文件: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:too ...
- Android 自定义Toast实现多次触发只会显示一次toast
#使用场景描述 当我们处于某个场景,例如一个按钮可以触发toast的显示,当你在多次点击按钮时,会多次触发toast的显示.而调用android原生的toast的makeText的方式所生产的toas ...
- android 多个dialog 交替显示,Android如何在一个AlertDialog中一个接一个地显示两个ListViews...
我有两个列表.一个列表显示可用列表中的所有可用项目(lv_available_items)和仅次要项目(lv_selected_items).我还希望该选定列表最多占用显示的50%,因此我使用属性&q ...
- android流量显示插件,[android]仿360状态,种流量监控桌面浮动显示
[android]仿360状态,类流量监控桌面浮动显示 前两天看到部分音频播放器可以实现在桌面上显示歌词,360那个浮动的桌面提示,想不到怎么实现.然后查了些资料大致了解了下,比想象的简单多了.先看效 ...
- Android移动APP开发笔记——Cordova(PhoneGap)通过CordovaPlugin插件调用 Activity 实例...
引言 Cordova(PhoneGap)採用的是HTML5+JavaScript混合模式来开发移动手机APP.因此当页面须要获取手机内部某些信息时(比如:联系人信息,坐标定位.短信等),程序就须要调用 ...
- 解决Android Studio默认AppTheme 没有lable标签,不显示等问题
解决Android Studio默认AppTheme 没有lable标签,不显示等问题 参考文章: (1)解决Android Studio默认AppTheme 没有lable标签,不显示等问题 (2) ...
- Android之View提升:四 使用ExpandableListView 折叠显示
Android之view提升:四 使用ExpandableListView 折叠显示 组项布局 子项布局 自定义Adapter 继承 BaseExpandableListAdapter package ...
- android解锁界面分析,Android 7.0 锁屏解锁之向上滑动显示解锁界面分析
Android 7.0 锁屏解锁之向上滑动显示解锁界面分析 by jing.chen 锁屏的解锁操作是在锁屏界面向上滑动实现的,通过向上滑动调出解锁界面(如图案.PIN.密码解锁界面),在解锁界面输入 ...
- Android:剖析源码,随心所欲控制Toast显示
本文转载于:http://www.cnblogs.com/net168/p/4058193.html 前言 Toast相信大家都不会陌生吧,如 ...
最新文章
- 如何在Mac上加入adb服务
- 计算体系结构的演进规律
- 判断sem信号量为零_Linux系统编程——进程同步与互斥:System V 信号量
- 快速开发平台网格部件合并单元格。
- 设计模式---装饰模式
- 数据库中char与varchar类型的区别 1
- 测试作业---兴趣问题清单
- (转)Kinect背景移除支持多人
- 哈希表,哈希算法(C语言)
- Centos7 安装python3.7.0
- SQL Server高级查询之常见数据库对象(视图)第五章节
- java 3d文字旋转_3d多物体点旋转
- Loadrunner 接口测试方法
- 小和尚卖石头,唤醒无数人!
- Android通过修改配置文件设置wifi密码
- 数学建模预测模型总结
- 北京交管部门多举措进行二环慢行系统改造,提升通行安全与效率
- 计算机网络之初识网络
- 驾考题库API接口,免费好用
- 市场调研你所不知道的几个关键点
热门文章
- android 属性动画 弧形,CSS分层动画可以让元素沿弧形路径运动
- linux网络配置总结,linux中的网络配置命令的总结
- C++、C#控制台应用程序暂停下来的方法
- java.net import_import java.net.URL;是什么类?
- 记录一下ECS修改实例密码以及安装可视化桌面
- 电机调速制动matlab,基于Matlab的三相异步电动机起动、调速和制动特性仿真
- 脚本大全_抖音文案大全2020励志:抖音最火励志搞笑句子,直接套用上热门
- ASP.NET 4.0 新特性--Web.Config Transformation(原创)
- 网络标准和OSI模型(1)
- 收藏:JavaScript