它是例行性地检查当前任务顶端的activity,
成都创新互联公司-专业网站定制、快速模板网站建设、高性价比讷河网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式讷河网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖讷河地区。费用合理售后完善,十年实体公司更值得信赖。
是否是即将启动的Activity的实例,
如果是否的话,在某些情况下,它什么也不做,就结束这个函数调用了。
这里,当前任务顶端的Activity为MainActivity,它不是SubActivity实例,于是继续往下执行:
- [java]
- view plaincopy boolean newTask = false;
- // Should this be considered a new task?
- if (r.resultTo == null && !addingToTask
- && (launchFlags&Intent.FLAG_ACTIVITY_NEW_TASK) != 0) {
- ......
- } else if (sourceRecord != null) {
- if (!addingToTask &&
- (launchFlags&Intent.FLAG_ACTIVITY_CLEAR_TOP) != 0) {
- ......
- } else if (!addingToTask &&
- (launchFlags&Intent.FLAG_ACTIVITY_REORDER_TO_FRONT) != 0) {
- ......
- }
- // An existing activity is starting this new activity, so we want
- // to keep the new one in the same task as the one that is starting
- // it.
- r.task = sourceRecord.task;
- ......
- } else {
- ......
- }
这里首先将newTask变量初始化为false,表示不要在新的任务中启动这个SubActivity。由于前面的已经把addingToTask设置 为true,因此,这里会执行中间的else if语句,即这里会把r.task设置为sourceRecord.task,即把SubActivity放在MainActivity所在的任务中启 动。
***,就是调用startActivityLocked函数继续进行启动Activity的操作了。后面的操作这里就不跟下去了,有兴趣的读者可以参 考两篇文章Android应用程序启动过程源代码分析和Android应用程序内部启动Activity过程(startActivity)的源代码分 析。
网站栏目:Android应用程序组件Activity的"singleTask"(10)
分享路径:http://www.csdahua.cn/qtweb/news46/300596.html
网站建设、网络推广公司-快上网,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 快上网