Android中startActivities的准确用法
平常一直在使用startActivity做启动单个activity,但是最近发现了startActivities可以实现很多应用场景,比如点击通知可以用这个方法跳转两个activity,这样先进来就是需要展现的activity返回的时候就能跳转到启动页或者广告页,实现更好的场景交互
那么具体是怎么实现的呢?其实要知道,这个方法就是启动多个activity,那么activity的启动方式又是怎么样的呢?是同时启动还是挨个启动,是同时压入栈中吗?于是写了简单的demo来验证一下自己的想法
fun arrayIntent(view : View) {val intent1 = Intent(this,IntentActivity1::class.java)val intent2 = Intent(this,IntentActivity2::class.java)val intent3 = Intent(this,IntentActivity3::class.java)startActivities(arrayOf(intent1,intent2,intent3))}
用startActivities同时启动3个activity
通过返回我们可以看到,先展示是Activity3,然后是Activity2,最后是Activity1
那么是不是这样的:
第一种猜测:
我startActivities时,Activity1、Activity2和Activity3都被创建了,只是依次压入栈底了,我finish掉Activity3,清除了栈顶,然后Activity2就可见了,清除Activity2之后,Activity1就到栈顶了。
第二种猜测
还是另外一种情况:先创建了Activity3,等到Activity3 finish掉之后,再开始创建Activity2,等到Activity2 finish掉之后,再创建Activity1呢?我们先打一波log看看:
IntentActivity3 onCreate
IntentActivity2onCreate
IntentActivity3 onDestroy
IntentActivity1 onCreate
IntentActivity2 onDestroy
IntentActivity1 onDestroy
可以看到我们上述的第二种猜想是正确的,在同时启动了多个activity的时候,销毁了最上级的activity就会创建新的activity,而不是同时创建的
那么问题来了,知道了它的运行逻辑,有什么实战意义呢
需求:
当用户收到了一个通知,并且app此时在后台运行,那么当点击通知的时候希望先跳到广告业再跳到业务页面,当返回的时候,又希望回到app的首页,我们就可以用这种方式实现,因为我们的app很多初始化工作都是在广告页实现的,比如验证token啊,当少了这一步,后面的接口就有可能报错,所以这种方式保证了初始化工作的实现
Android中startActivities的准确用法相关推荐
- android服务绑定异步,Android中异步类AsyncTask用法总结
本文总结分析了Android中异步类AsyncTask用法.分享给大家供大家参考,具体如下: 最近整理笔记的时候,看到有关AsyncTask不是很理解,重新疏导了一下,有在网上找了一些资料,个人不敢独 ...
- Android中各种Span的用法——转载
转载一篇觉得很好的文章,在转载中成长:https://blog.csdn.net/qq_16430735/article/details/50427978 Android中各种Span的用法 前言 S ...
- 49.Android中各种Span的用法
49.Android中各种Span的用法 Android中各种Span的用法 前言 SpannableStringBuilder URLSpan UnderlineSpan TypefaceSpan ...
- Android中的Selector的用法
Android中的Selector主要是用来改变ListView和Button控件的默认背景.其使用方法可以按一下步骤来设计: (以在mylist_view.xml为例) 1.创建mylist_vie ...
- Android中与Intent相关的还有,Android中Intent的相关用法
Intent第一个用法便是用它来进行活动之间的跳转 新建一个SecondActivity活动,并为之新建一个second_layout.XML布局文件,也创建一个Button按钮,名字为Button ...
- Android中Calendar类的用法总结
Calendar是Android开发中需要获取时间时必不可少的一个工具类,通过这个类可以获得的时间信息还是很丰富的,下面做一个总结,以后使用的时候就不用总是去翻书或者查资料了. 在获取时间之前要先获得 ...
- android定义 task,Android中AsyncTask的基本用法
首先: 了解一个知识点的用法,可以分四步: 第一:what是指AsyncTask的概念,从服务器下载资源,解析json文件,在开发Android应用时必须遵守单线程模型的原则: Android UI操 ...
- android日历总结,Android中Calendar类的用法总结
Calendar是Android开发中需要获取时间时必不可少的一个工具类,通过这个类可以获得的时间信息还是很丰富的,下面做一个总结,以后使用的时候就不用总是去翻书或者查资料了. 在获取时间之前要先获得 ...
- Android中Menu的基本用法
转自:http://blog.csdn.net/yuzhongchun/article/details/8956256 一. 使用xml定义Menu 菜单资源文件必须放在res/menu目录中.菜单资 ...
最新文章
- Android Studio 初体验
- 凸集+非凸集+凸函数+非凸函数
- 通过微信公众号获取用户信息(java版)
- Linux_文件系统磁盘分区
- header+php+xiazai_php使用header函数实现文件下载
- 探索比特币源码3-熟悉RPC接口
- 电商库存详解:三层(销售层、调度层、仓库层)来看库存设计
- springmvc配置拦截器
- 滑动平均_善杰告诉您初中物理学滑动变阻器的各种作用
- python打包成exe文件
- eclipse运行java快捷键_Eclipse快捷键【常用】
- 图文详解win7实现局域网共享文件
- 图灵奖Alan Kay:突破常规思维!道翰天琼认知智能机器人平台API接口大脑为您揭秘
- el-tree修改前面箭头图标
- html 多行注释的写法,web前端:JavaScript单行与多行注释书写格式
- gvim 换行符替换
- 【算法设计与分析】递归与分治 | 复习笔记
- 开源软件xxl-job的oracle版本
- 不再热衷南下打工!中国农村正在巨变,又一浪潮滚滚席卷而来
- win10系统如何搜索计算机,让您电脑搜索查找更方便!Win10系统建立索引教程