`
wangym
  • 浏览: 124442 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Activity的launchMode总结

阅读更多

一、standard

 

 

此为默认模式。如上图,FirstActivity跳转FirstActivity,此时不论FirstActivity是否已存在,每次都会生成一个新的FirstActivity实例,并置于栈顶,当按下后退键时,再按反向顺序一个个的后退直至退出。

 

 

 

二、singleTop

 

 

如上图,FirstActivity跳转FirstActivity,先在栈中寻找是否有对应的实例,若有且位于栈顶,则不再生成新的FirstActivity而是直接使用。但若不在栈顶,则仍会新建实例,如下图,FirstActivity跳转SecondActivity再跳转FirstActivity,因SecondActivity跳转时它是栈顶,所以就算FirstActivity在栈中已存在但仍会被新建一个实例:

 

 

 

 

3.singleTask

 

 

如上图,FirstActivity跳转SecondActivity再跳转FirstActivity,因为FirstActivity是singleTask模式,所以此时不会新建FirstActivity而是直接使用,但特别注意的是,会将FirstActivity之上所有的Activity全部出栈,让FirstActivity成为栈顶,所以就成上图的下半部份所示,栈中只剩FirstActivity了。

 

 

 

四.singleInstance

 


如上图,首先FirstActivity和SecondActivity在两个独立的不同的Task栈中,上半部份是左栈中的FirstActivity(standard)跳转右栈中的SecondActivity(singleInstance),当按下后退键时,会从右栈的SecondActivity退至左栈的FirstActivity,再按下后退键时,则从左栈中退出;而下半部份是SecondActivity再跳转至FirstActivity,特别注意,此时因FirstActivity是standard模式所以会新建一个实例,又因为SecondActivity发起新的跳转,所以左栈所有的后退均完成后,最后会后退至SecondActivity。另,上图的上半部份中若FirstActivity从standard改为singleTop、singleTask、singleInstance中的任意一个,则会如下图:

 

 

 

  • 大小: 9 KB
  • 大小: 5.3 KB
  • 大小: 9.7 KB
  • 大小: 8.5 KB
  • 大小: 19 KB
  • 大小: 9.7 KB
分享到:
评论

相关推荐

    Android Activity LaunchMode Test

    LaunchMode是Android系统中Activity的一项重要属性,用于控制Activity的启动行为。理解并熟练掌握Activity的LaunchMode对于优化应用性能和实现预期的用户体验至关重要。本文将深入探讨Android Activity的LaunchMode...

    android之activity的生命周期和launchMode、onActivityResult方法的作用

    总结来说,理解Activity的生命周期、熟练运用launchMode以及正确使用onActivityResult方法,对于编写稳定、高效、用户体验良好的Android应用至关重要。通过实际的代码测试和实验,开发者可以更好地掌握这些核心概念...

    android基础总结篇之二:Activity的四种launchMode

    我们今天要讲的是Activity的四种launchMode。 launchMode在多个Activity跳转的过程中扮演着重要的角色,它可以决定是否生成新的Activity实例,是否重用已存在的Activity实例,是否和其他Activity实例公用一个task里...

    Android LaunchMode启动方法

    启动模式可以通过在AndroidManifest.xml文件中为Activity配置`android:launchMode`属性来指定: ```xml <activity android:name=".ActB" android:launchMode="singleTask"> </activity> ``` 此外,也可以在IDE...

    Activity跳转 四种跳转方式

    在`AndroidManifest.xml`文件中的`activity`元素同时添加`android:launchMode="singleInstance"`和`android:excludeFromRecents="true"`属性。 **示例代码**: 配置方法与前面几种不同,需要指定两个属性。 ```xml...

    拦截Activity的文件

    通过修改<activity>标签的属性,如android:exported、android:launchMode等,可以实现对Activity启动方式的控制,这也是拦截的一部分。 三、Intent拦截 Intent是Android中用于启动Activity或Service的载体,包含有...

    Android的Activity的Launch模式之SingleInstance案例

    在AndroidManifest.xml中,针对特定Activity添加`android:launchMode="singleInstance"`属性: ```xml <activity android:name=".YourSingleInstanceActivity" android:launchMode="singleInstance"> ... </...

    activity的四种加载模式分析

    在 AndroidManifest.xml 中 MainActivity 中添加 android:launchMode="singleInstance" 运行项目,点击相应按钮,会发现每次启动 MainActivity 时,都会创建一个新的 Task,即使之前已经有一个包含 MainActivity 的 ...

    040集-启动带两个Action值的预定义Activity

    总结来说,启动带有两个Action值的预定义Activity是一种扩展Activity功能的方法,可以提高代码的灵活性和可扩展性。通过理解Intent和Action的工作原理,开发者能够创建更加智能和动态的Android应用。本集教程将通过...

    Activity启动模式实例

    在"ActivityDemo"和"NewInstance"这两个文件中,开发者可能会看到如何通过在AndroidManifest.xml中设置`android:launchMode`属性来指定Activity的启动模式。而"ActivityDemo_S"可能包含了针对不同启动模式的测试用例...

    使用Activity提权,notification提权,定时器,系统广播保活

    例如,可以设置 `android:launchMode="singleTask"` 或 `android:excludeFromRecents="true"` 来使Activity成为单一任务栈的根Activity,这样即使用户返回到主屏幕,该Activity也不会被销毁。 二、Notification提权...

    Activity启动模式之代码验证

    总结来说,理解并正确使用Activity的启动模式对于优化用户体验和管理应用状态至关重要。开发者应根据具体需求选择合适的启动模式,以确保应用的逻辑清晰、运行顺畅。通过代码验证和实践操作,我们可以更深入地掌握...

    Android-两种方法管理应用内Activity

    可以通过在AndroidManifest.xml中设置`android:launchMode`属性来定义Activity的启动模式。 **总结** 理解并熟练运用Intent和Activity Stack管理机制,有助于提高Android应用的用户体验和性能。Intent提供了灵活的...

    Android Activity 的四种启动模式 lunchMode 和 Intent.setFlags()

    这些启动模式可以通过在 AndroidManifest.xml 文件中为 Activity 设置 `android:launchMode` 属性来指定。 ##### 1. Standard 模式 (默认模式) - **描述**:当 Activity 的启动模式设置为 `standard` 时,每次通过...

    Activity跳转全解

    在AndroidManifest.xml中,我们可以通过设置`android:launchMode`属性来控制Activity的启动模式,常见的有以下四种: 1. standard(默认):每次启动新的实例。 2. singleTop:如果目标Activity已经在栈顶,不会...

    android activity

    - **启动方式**:通过`android:launchMode` 属性来控制`Activity` 的启动模式,包括: - **standard**:默认模式,每次启动都会创建新的实例。 - **singleTop**:如果当前任务栈顶部已经有该`Activity` 的实例,则...

    android activity研究

    #### 五、总结 通过本文的介绍,我们可以了解到 `Activity` 在 Android 应用程序中的核心地位以及如何通过配置参数灵活地控制其行为。此外,`Task` 和 `Launch Mode` 的概念为开发者提供了更多实现复杂功能的可能性...

    android 面试题(个人总结)

    例如,`android:launchMode`可以决定新实例如何创建,`android:theme`可以定义Activity的视觉风格。 三、Activity的保存与恢复状态:`onSaveInstanceState()`和`onRestoreInstanceState()` 系统在`onPause()`之前...

Global site tag (gtag.js) - Google Analytics