android Intent onNewIntent 什么时候调用
1.activity A 的lanch model 为singleTop
此刻,A在activity 栈顶,那么就会调用A 的onNewIntent
如果A不在栈顶,则不会调用。
2.activity A 的lanch model 为 singTask
如果task 里面已经有activity a 的实例,再次启动A就会调用onNewTask
3.如果activity A 的lanch model 为singleInstance
启动过activity A ,有activity A 的实例,那么就会调用onNewIntent
4.如果activity A 的启动模式为standard
启动activity的时候,
1).我增加了FLAG_ACTIVITY_CLEAR_TOP 和FLAG_ACTIVITY_SINGLE_TOP,那么如果有曾经启动过A,则会调用onNewIntent
Intent intent = new Intent(SecondActivity.this,MainActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
intent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
2)如果此时A在activity栈顶,那么只需要加FLAG_ACTIVITY_SINGLE_TOP 就可以让A执行onNewIntent
参考:https://www.cnblogs.com/zawn/archive/2012/10/23/2735875.html
Activity 的 onNewIntent方法的调用可总结如下:
在该Activity的实例已经存在于Task和Back stack中(或者通俗的说可以通过按返回键返回到该Activity )时,当使用intent来再次启动该Activity的时候,如果此次启动不创建该Activity的新实例,则系统会调用原有实例的onNewIntent()方法来处理此intent.
且在下面情况下系统不会创建该Activity的新实例:
1,如果该Activity在Manifest中的android:launchMode定义为singleTask或者singleInstance.
2,如果该Activity在Manifest中的android:launchMode定义为singleTop且该实例位于Back stack的栈顶.
3,如果该Activity在Manifest中的android:launchMode定义为singleTop,且上述intent包含Intent.FLAG_ACTIVITY_CLEAR_TOP标志.
4,如果上述intent中包含 Intent.FLAG_ACTIVITY_CLEAR_TOP 标志和且包含 Intent.FLAG_ACTIVITY_SINGLE_TOP 标志.
5,如果上述intent中包含 Intent.FLAG_ACTIVITY_SINGLE_TOP 标志且该实例位于Back stack的栈顶.
上述情况满足其一,则系统将不会创建该Activity的新实例.
根据现有实例所处的状态不同onNewIntent()方法的调用时机也不同,总的说如果系统调用onNewIntent()方法则系统会在onResume()方法执行之前调用它.这也是官方API为什么只说”you can count on onResume() being called after this method”,而不具体说明调用时机的原因.
注意:微博分享的实现方式就是通过增加flag 调用你的activity 的onNewIntent.当时我还想不通,为什么,我的activity 不是sigleTop 的也可以调用到onNewIntent上来。原来是动态加了flag,如果你已经有了实例,比如加flag:FLAG_ACTIVITY_SINGLE_TOP,系统就会去检查,如果已经有实例,那么就调用你的onNewIntent.
android Intent onNewIntent 什么时候调用的更多相关文章
- 【Android】onNewIntent调用时机
在IntentActivity中重写下列方法:onCreate onStart onRestart onResume onPause onStop onDestroy onNewIntent一.其他应 ...
- android开发(26) 和其他应用交换数据方式一,使用intent指定自定义action调用其他程序里的activity,并获得其返回的结果
我们在开发中会遇到和其他应用的交互情形,下面是一个简单的方式.整个的使用类似“使用intent调用系统自带的拍照应用并获得结果”. 先看页面: 我们看看实现步骤. 第一个应用 DEMO1: 1 ...
- Android Intent调用 Uri的使用几种格式
打开百度 Uri uri = Uri.parse("http://www.baidu.com"); Intent intent =new Intent(Intent.ACTION_ ...
- [Android] Intent详解
[转]http://www.cnblogs.com/engine1984/p/4146621.html [正文] Intent组件虽然不是四大组件,但却是连接四大组件的桥梁,学习好这个知识,也非常的重 ...
- Android——Intent详解
Intent组件虽然不是四大组件,但却是连接四大组件的桥梁,学习好这个知识,也非常的重要. 一.什么是Intent 1.Intent的概念: Android中提供了Intent机制来协助应用间的交互与 ...
- android Intent介绍
Android中提供了Intent机制来协助应用间的交互与通讯,Intent负责对应用中一次操作的动作.动作涉及数据.附加数据进行描述,Android则根据此Intent的描述,负责找到对应的组件,将 ...
- Intent(二)隐式调用intent
在上一节我们一起学习了显示调用Intent,这一节我们来学习如何隐式调用Ingtent.有了这个我们就可以调用其他的线程,或者程序,可以让我们的应用程序变得多彩,如打开网页,拨打电话等. 接下来让我们 ...
- android intent和intent action大全
1.Intent的用法:(1)用Action跳转1,使用Action跳转,如果有一个程序的AndroidManifest.xml中的某一个 Activity的IntentFilter段中 定义了包含了 ...
- Android Intent的几种用法全面总结
Android Intent的几种用法全面总结 Intent, 用法 Intent应该算是Android中特有的东西.你可以在Intent中指定程序要执行的动作(比如:view,edit,dial), ...
随机推荐
- Excel汇总多个页卡数据到一个页卡
首先新建一个页卡放到最前面,页卡处右键,选择查看代码,选择需要汇总的页卡,输入以下代码,运行即可: 1.如果需要把全部数据都汇总到一个页卡 Sub 合并当前工作簿下的所有工作表() Applicati ...
- 笨办法学Python(十)
习题 10: 那是什么? 在习题 9 中我你接触了一些新东西.我让你看到两种让字符串扩展到多行的方法.第一种方法是在月份之间用 \n (back-slash n )隔开.这两个字符的作用是在该位置上放 ...
- 通过CSS3实现:鼠标悬停图片360度旋转效果
效果很好玩,代码很简单: 效果: 鼠标放置在图片上:360度顺时针旋转 鼠标离开图片:图片260度逆时针旋转 只要将下面代码拷贝过去,并将图片改成你想要的就可以看到效果 <!doctype ht ...
- 解决使用phpmyadmin导出导入数据库时提示的“超出长度”、“超时”问题
IIS请求筛选模块被配置为拒绝超过请求内容长度的请求 1. 修改IIS的applicationhost.config a.文件位置: %windir%/system32/inetsrv/config/ ...
- Vim-命令合集
命令历史 以:和/开头的命令都有历史纪录,可以首先键入:或/然后按上下箭头来选择某个历史命令. 启动vim 在命令行窗口中输入以下命令即可 vim 直接启动vim vim filename 打开vim ...
- 【JavaScript 封装库】BETA 5.0 测试版发布!
JavaScript 前端框架(封装库) BETA 5.0 已于10月10日正式发布,今天开始提供 BETA 5.0 的 API 参考文献.相较于之前 5 个版本的发布都是草草的提供源代码,并没有很多 ...
- 问答 请问使用OK("raw:jpg")能返回多张图片吗
请问使用OK("raw:jpg")能返回多张图片吗 发布于 28天前 作者 qq_3aeeb0ad 78 次浏览 复制 上一个帖子 下一个帖子 标签: 无 @At( ...
- Uva 11806 拉拉队
题目链接:https://uva.onlinejudge.org/external/118/11806.pdf 题意: n行m列的矩阵上放k个棋子,其中要求第一行,最后一行,第一列,最后一列必须要有. ...
- php无法保存SESSION问题总汇
昨天客户又过来说网站的问题,说的也都是些毛毛雨的东西,管理那么多网站,再有这么些客户的存在,本人也是累了,但当登录后台的时候突然发现后台登录不了,查看了一下验证码服务器端的session为空值,之前登 ...
- 字符串比较操作类StringComparer
StringComparer这个字符串比较操作类.它继承了四种接口IComparer, IEqualityComparer, IComparer<string>, IEqualityCom ...