Activity四种launchMode

总共有四篇关于Activity,task,launchMode的文章,可以在我的博客中查看,或者在文章底部点下一篇。

1.Standard

默认模式,多次实例化,按序入栈出栈。

2.SingleTop

栈顶Activity不会被重复创建,会触发onNewIntent()事件,不在栈顶时可以多次实例化。

3.SingleTask

Developer.android.com的说法:

(1)新建一个task,创建一个Activity;

(2)如果存在一个不同的task包含这个Activity的实例,会切换到这个task,将这个Activity以上的Activity弹出,并且触发这个Activity的onNewIntent事件;

(2)描述了不会新建task的情况,但是:

实验发现(2)前提条件,有一点问题:

(1)“包含这个Activity的实例”不是必要条件:

如果没有一个task包含这个Activity的实例,但是,存在一个task包含与这个Activity属于同一个App的其他Activity的实例,这时不会新建task,而是切换到这个task中,在这个task中新建这个Activity。

(2) “不同的task”不是必要条件:

如果不存在一个不同的task包含这个Activity的实例,但是在当前的task中本身就存在这个Activity实例,不会新建task,而会在当前task中,将这个Activity以上的Activity弹出,并且触发这个Activity的onNewIntent事件;

4.SingleInstance

(1)如果没有一个task包含这个Activity的实例,会新建一个task,创建一个Activity;

(2)如果存在一个task包含这个Activity的实例,会切换到这个task,并且触发这个Activity的onNewIntent事件,Activity独占task。没有描述弹出其他Activity的必要。

(3)在包含这个Activity的task中,仅包含这个一个Activity,如果需要打开新的Activity,必须在其他task中打开,如果新建了task,task的根activity为新打开的这个Activity,之后打开这个Activity时,都不会新建Activity,只会将这个task带到前台。

总共有四篇关于Activity,task,launchMode的文章,可以在我的博客中查看,或者直接点下一篇。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏我的博客

安卓开发之Activity传递参数

1、知识点:启动activity、注册activity、button绑定监听事件、传递参数、获取参数 2、传递参数以及绑定监听代码(注意如果绑定监听出现错误:需...

1754
来自专栏分享达人秀

Activity任务栈和启动模式

通过前面的学习,Activity的基本使用都已掌握,接下来一起来学习更高级的一些内容。 Android采用任务栈(Task)的方式来管理Act...

1816
来自专栏编程之路

# 羊皮书APP(Android版)开发系列(二十六)开机自启动app的实现

1) Apk需要设置默认安装到手机内存,外设SD卡是接收不到开机广播,这里只针对安装位置为手机内存的app。

675
来自专栏游戏杂谈

Android调用浏览器打开网址遇到的问题

我自己的手机(一加一代,升级了氢OS),然后在点击游戏内一个“隐私政策”-- 需要打开一个网页,然后就crash了。出错的信息如下:

771
来自专栏向治洪

android 添加React Native支持更新版

前言 之前已经写过了有关React Native移植原生Android项目的文章,不过因为RN版本更新的原因吧,跟着以前的文章可能会出现一些问题,对于初学者来讲...

1918
来自专栏李蔚蓬的专栏

跨程序共享数据——Content Provider 之 运行时权限解析以及申请的实现(可完美解决java.lang.SecurityException:Permission Denial 问题)

本模块共有四篇文章,参考郭神的《第一行代码》,对Content Provider的学习做一个详细的笔记,大家可以一起交流一下:

1443
来自专栏FreeBuf

深入挖掘APP克隆实验

0×00前言 在上一篇文章《WebView域控不严格读取内部私有文件实验》中,对webview跨域访问进行了简单的实验,后续决定深入挖掘一下APP克隆,之前文章...

22510
来自专栏一个会写诗的程序员的博客

adb shell 启动,停止 android 应用程序一、adb启动 应用程序二、adb停止 应用程序

包名和Activity类的类名一定要输入正确,可以用re-sign工具(在最后的弹出信息框会显示出包名和Activity类名)。

702
来自专栏Android干货

Android项目实战(二十二):启动另一个APP or 重启本APP

2776
来自专栏有趣的django

21天打造分布式爬虫-下载汽车之家图片(九)

1073

扫码关注云+社区