`

Activity的四种加载模式:

 
阅读更多
Activity的四种加载模式:



1、standard :系统的默认模式,一次跳转即会生成一个新的实例。假设有一个activity命名为Act1,执行语句:

startActivity(new Intent(Act1.this, Act1.class));

后Act1将跳转到另外一个Act1,也就是现在的栈里面有 Act1 的两个实例。按返回键后你会发现仍然是在Act1(第一个)里面。



2、singleTop:singleTop 跟standard 模式比较类似。唯一的区别就是,当跳转的对象是位于栈顶的activity(应该可以理解为用户眼前所 看到的activity)时,程序将不会生成一个新的activity实例,而是直接跳到现存于栈顶的那个activity实例。拿上面的例子来说,当Act1 为 singleTop 模式时,执行跳转后栈里面依旧只有一个实例,如果现在按返回键程序将直接退出。这个貌似用得比较少。



3、singleTask: singleTask模式和后面的singleInstance模式都是只创建一个实例的。在这种模式下,无论跳转的对象是不是位于栈顶的activity,程序都不会生成一个新的实例(当然前提是栈里面已经有这个实例)。这种模式相当有用,在以后的多activity开发中, 经常会因为跳转的关系导致同个页面生成多个实例,这个在用户体验上始终有点不好,而如果你将对应的activity声明为 singleTask 模式,这种问题将不复存在。不过前阵子好像又看过有人说一般不要将除开始页面的其他页面设置为 singleTask 模式,原因暂时不明,哪位知道的可以请教下。



4、singleInstance: 设置为 singleInstance 模式的 activity 将独占一个task(感觉task可以理解为进程),独占一个task的activity与其说是activity,倒不如说是一个应用,这个应用与其他activity是独立的,它有自己的上下文activity。拿一个例子来说明吧:

现在有以下三个activity: Act1、Act2、Act3,其中Acti2 为 singleInstance 模式。它们之间的跳转关系为: Act1 -- Act2 -- Act3 ,现在在Act3中按下返回键,由于Act2位于一个独立的task中,它不属于Act3的上下文activity,所以此时将直接返回到Act1。这就是singleInstance模式。
分享到:
评论

相关推荐

    activity的四种加载模式

    activity的四种加载模式:<!-- 不写的话也默认是standard --> <!-- standard表示每执行一次startactivity就新建一个实例 singleTop表示每次执行startactivity时,如果当前activity在taskstack的顶端,则不...

    Android Activity的四种加载模式区别

    Android提供了四种不同的加载模式:standard、singleTop、singleTask和singleInstance。下面将详细阐述这四种模式的区别。 1. **standard**(标准模式) 这是Activity的默认加载模式,当启动一个Intent时,系统会...

    activity的四种加载模式分析

    Activity 的四种加载模式对于应用程序的导航和行为有着显著的影响。理解这些模式对于优化用户体验和避免意外的行为至关重要: 1. standard 模式是最常见的,每次启动 Activity 都会创建新的实例。这可能导致 Task ...

    Android系统中Activity的四种加载模式.pdf

    Android系统中Activity的四种加载模式 Android系统中的Activity是一种非常重要的组件,它是Android应用程序的基本组成单元之一。在实际的Android应用程序中,一个Android软件往往包含多个Activity,每个Activity...

    Activity加载模式demo

    本示例"Activity加载模式demo"将深入探讨四种不同的Activity加载模式,并通过代码演示如何实现它们。 1. **标准模式(Standard)** 标准模式是最常见的Activity加载模式,也是默认模式。在这种模式下,每次启动...

    Android 四种加载模式

    本篇文章将深入解析四种加载模式:`standard`、`singleTop`、`singleTask`和`singleInstance`,并提供实际应用场景,帮助开发者更好地掌握这些核心概念。 #### 1. Standard模式 Standard模式是最常见的加载模式,...

    activity属性,加载模式等

    `Activity`的属性和加载模式对于理解Android应用的行为至关重要。这篇博客文章可能深入探讨了这些概念。 首先,让我们来了解一下`Activity`的一些基本属性: 1. **标签(Label)**:这是显示在用户界面上的文本,...

    Activity加载模式讲解

    Android提供了四种基本的Activity启动模式: 1. **标准模式(Standard)**:这是默认模式,每次启动都会创建一个新的实例,无论它是否已经存在。新实例可以位于任务的任何位置,取决于启动它的Intent。 2. **单...

    android Activity加载方式

    接下来,我们将详细讨论Android Activity的四种加载模式:standard、singleTop、singleTask和singleInstance,并通过示例分析它们之间的区别。 1. **standard(标准模式)** 这是Activity的默认加载模式,不需要在...

    Android编程之四种Activity加载模式分析

    本文将详细解析Android编程中的四种Activity加载模式:standard、singleTop、singleTask和singleInstance,帮助开发者更好地理解和掌握Activity的生命周期及切换逻辑。 首先,Activity的状态主要有四种:活动的...

    ActivityTask设计模式

    ActivityTask是怎么进行设计的,以及Activity四种加载模式。

    动态加载Activity1

    在Android应用开发中,动态加载Activity是一种提高应用灵活性和可扩展性的技术。它允许开发者在应用运行时根据需要加载不同的Activity,而不是在编译时就固定下来。这为实现插件化开发提供了基础,使得应用能够加载...

    ViewPager加载Activity

    总的来说,"ViewPager加载Activity"是一种特殊的设计模式,它结合了ViewPager的滑动特性与Activity的功能,提供了独特的用户体验。但请注意,这并不是最佳实践,因为它可能带来额外的复杂性和潜在的问题。在大多数...

    android activity和task

    5. Activity的四种加载模式: - 标准模式(Standard):每次启动都会创建新的实例,可以放入任何Task。 - 单实例模式(SingleInstance):在整个系统中只有一个实例,且总是在新的Task中启动。 - 单任务模式...

    Android-skin-sprite另一种不重启Activity切换Android夜间模式的库

    而“Android-skin-sprite”库提供了一种无需重启Activity就能实现夜间模式切换的解决方案。这个库主要用于动态改变Android应用的主题和皮肤,使得用户可以在不同光线环境下舒适地使用应用。 首先,我们来理解...

    Android动态加载Activity原理详解

    `ActivityInfo`包含了Activity的元数据,如启动模式、主题等,而`loadedApk`则包含了与应用相关的所有信息,如类加载器、资源等。 在启动过程中,`ActivityClientRecord`的`packageInfo`字段起初为null,需要通过`...

    全面解析Android应用开发中Activity类的用法

    6. **Activity的四种启动模式**: - `standard`(默认模式):每次启动都会创建一个新的Activity实例。 - `singleTop`:如果目标Activity已经在栈顶,不会创建新的实例,而是调用其`onNewIntent(Intent)`方法。 -...

    Tab中的Activity嵌入子Activity

    在Android开发中,"Tab中的Activity嵌入子Activity"是一个常见的设计模式,它涉及到UI设计、Activity栈管理和用户交互。这种做法通常是为了解决多视图切换和保持应用层级结构清晰的问题。以下是对这一主题的详细说明...

Global site tag (gtag.js) - Google Analytics