`
1140566087
  • 浏览: 559146 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
博客专栏
2c4ae07c-10c2-3bb0-a106-d91fe0a10f37
c/c++ 入门笔记
浏览量:18530
3161ba8d-c410-3ef9-871c-3e48524c5263
Android 学习笔记
浏览量:314107
Group-logo
J2ME 基础学习课程集
浏览量:18737
A98a97d4-eb03-3faf-af96-c7c28f709feb
Spring 学习过程记录...
浏览量:17581
社区版块
存档分类
最新评论

Android 之 Activity的加载模式

阅读更多

                                                     
Activity 的加载模式

1)  概念:
         加载模式决定以哪种方式启动一个跳转到原来某个Activity实例;

2)  起因:
        在Android 开发中,activity 之间的跳转可能需要有多种方式,有时是普通的生成一个新实例,有时希望跳转到原来某个activity实例,而不是生成大量的重复的activity;

3)  加载模式的种类:
        在android 中,activity 有四种加载模式:standard ,singleTop,singleTask,singleInstance;

4)  配置:
        直接修改AndroidMainfest.xml 文件,例如:
        <activity android:name=”.NewActivity” android:launchMode=”singleTask”>
        </activity>

5)  四种加载模式的介绍:

   a) Standard : 系统默认模式,一次跳转即会生成一个新的实例;
   b) SingleTop : 和 standard 类似,唯一的区别就是当跳转的对象是位于栈顶的activity时,程序将不会生成一个新的activity实例,而是直接跳到现在存于栈顶的那个activity实例;
   c) SingleTask: singleTask 模式和后面的singleInstance 模式都只是创建一个实例;该模式下,无论调转的对象是不是位于栈顶的activity,程序都不会生成一个新的实例(前提是该栈中已经 存在了这个实例);

    提示:一般不要将除开始页面的其他页面设置为singleTask 模式;
 
   d) SingleInstance: activity独占一个task(可以理解为进程),独占一个task 的activity 可以相当于是一个应用,这个应用与其他的activity是独立的,他有自己的上下文activity;

    例如:现有三个activity,a1,a2,a3, a2设置为singleInstance 模式,那么调转关系如下:a1-a2-a3,  在 a3中按返回,由于a2 位于一个独立的task中,它不数据a3 的上下文activity ,所以此时将直接返回得到 a1 ,a1 再返回程序并没有结束,而是得到 a2 , 再返回就结束了程序;

   e) 四种加载模式的主要区别:

  所属Task 的区别
         一般情况下,standard 和 singleTop 两种模式的的资源在同一个Task里面,除非Intent包含了参数 FLAG_ACTIVITY_NEW_TASK ,则目标activity启动会到新的Task里面
 
    是否允许多个实例的区别:
         Starndrd  和 singleTop 可以允许有多个实例,并可以位于不同的task中;singleTop要求 activity Stack 栈顶已经要目标acvitivy实例,有就不创建,没有就创建
         SingleTask 和 singleInstance 只产生一个实例,并且是task的根元素

  是否允许其他Activity存在于本Task内的区别:
         SingleInstance 独占一个Task ,其他Activity 均不能村在于此Task中,如果它启动一个新的Activity,不管新的Activity的launch mode 如何,新的Activity都将运行于其他Task里;
         另外三种模式则可以和其他Activity共存;
 
    每次是否生成新实例:
         Standard : 每次都生成一个新的Activity实例;
         singleTop :的Activity如果在Task 的Activity Stack 顶部则不生成新的实例,直接使用,否则生成一个新的实例;
         singleInstance :是其所在的Task的Activity 的Activity Stack 里的唯一的Activity实例,每次都会被重用;
         singleTask :如果在Task 的Activity Stack 的顶部,则接收intent,否则会被丢弃,但仍然会返回前台;
1
0
分享到:
评论

相关推荐

    Activity加载模式demo

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

    Android Activity的四种加载模式区别

    总之,Android的四种Activity加载模式提供了一种灵活的方法来管理Activity实例和任务,帮助开发者实现更高效、更流畅的应用体验。在设计应用程序的导航流程时,充分理解和利用这些模式是非常重要的。

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

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

    android Activity加载方式

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

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

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

    Activity加载模式讲解

    在Android应用开发中,Activity是用户界面的基本组件,它负责展示和交互。本文将深入探讨Activity的加载模式以及其...阅读提供的"Activity加载模式及生命周期"文档,将有助于你深入理解这些概念,并将其应用于实践中。

    Android 四种加载模式

    在Android应用开发中,理解Activity的加载模式至关重要,它直接关系到应用程序的性能和用户体验。本篇文章将深入解析四种加载模式:`standard`、`singleTop`、`singleTask`和`singleInstance`,并提供实际应用场景,...

    activity的四种加载模式分析

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

    Android使用Activity用作弹出式对话框

    最后,启动`PopupActivity`时,可以使用`Intent`并设置特殊的启动模式,这样`Activity`就会以对话框形式出现在当前`Activity`之上: ```java Intent intent = new Intent(this, PopupActivity.class); intent....

    Android动态加载Activity原理详解

    在Android系统中,动态加载Activity是一项关键的技术,它允许应用程序在运行时动态地加载和启动新的Activity,从而实现模块化和插件化的功能。本文将深入解析Android动态加载Activity的原理,帮助开发者理解和掌握这...

    Android原生方式实现夜间模式

    Android系统支持根据不同的配置(如语言、屏幕尺寸等)加载相应的资源。我们可以利用这一特性来实现夜间模式。创建两个资源目录:`res/values`(用于默认模式)和`res/values-night`(用于夜间模式),分别存放不同...

    activity属性,加载模式等

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

    基于Android ListView之加载使用技巧

    在Android开发中,ListView是一个非常重要的...综上所述,Android ListView的加载使用技巧涵盖了Adapter的优化、加载状态的管理以及用户体验的提升。理解并掌握这些技巧,能帮助开发者打造出更加高效、易用的列表界面。

    ViewPager加载Activity

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

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

    在Android应用开发中,提供夜间模式是提升用户体验的重要方式之一。传统的实现夜间模式通常需要重启Activity,这可能导致界面闪烁,影响用户体验。而“Android-skin-sprite”库提供了一种无需重启Activity就能实现...

    android 九宫格模式实现多个activity的切换

    以上就是实现Android九宫格模式切换多个Activity的基本步骤。通过自定义Adapter和点击事件,我们可以轻松地为每个按钮绑定不同的Activity,同时通过调整布局和动画,可以进一步优化用户体验。在实际开发中,还可以...

    Android代码-不重启实现日夜间模式切换

    实现了日夜模式的切换.(不重启 Acitivity ) 解决了因为快速点击 View 导致的多次响应点击事件. 内部实现了 Android 5.0 的CircularReveal效果. 优点: 布局中直接使用 Android 默认的控件就可以.在解析以后会根据...

    ActivityTask设计模式

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

    Android webview加载网页.zip

    9. **缓存策略**:使用`setCacheMode()`可以设置WebView的缓存模式,以便离线状态下仍能显示之前加载过的网页。 10. **其他功能**:如禁用缩放、设置字体大小、开启或关闭内置的加载动画等,都可以通过WebSettings...

    Android初识之Activity组件

    在Android应用开发中,Activity是核心组件之一,它充当了用户界面的主要载体,与用户进行交互。本篇文章将深入探讨Activity的基本概念、生命周期以及如何在Activity之间传递数据。 首先,让我们了解一下Activity类...

Global site tag (gtag.js) - Google Analytics