Android中Activity的四种启动方式

谈到Activity的启动方式必须要说的是数据结构中的栈。栈是一种只能从一端进入存储数据的线性表,它以先进后出的原则存储数据,先进入的数据压入栈底,后进入的数据在栈顶。需要读取数据的时候就需要从顶部开始读取数据,栈具有记忆功能,对栈的操作不需要指针的约束。在Android中Activity的显示其实就是一个入栈和出栈的过程。当打开一个Activity的时候Activity入栈,当关闭一个Activity的时候Activity出栈,用户操作的Activity位于栈顶,一般情况下,一个应用程序对应一个任务栈,当任务栈清空时也就代表应用程序清空了。同时当一个任务栈创建的时候系统就会分配一个int类型的id,当任务栈结束,这个id也就回收。

默认启动方式:standard

系统默认的Activity启动模式,他的读取和栈一样,当调用某个Activity时入栈,撤销时出栈,显示Activity位于栈顶。

顶部唯一任务:singleTop

当某个Activity设置了这种启动模式时,当Activity入栈位于顶部时,若再向Activity入栈(进入一个相同Activity的实例),那么系统会服用栈顶Activity,不会再创建新的Activity入栈。

单一任务:singleTask

当某个Activity设置了这种启动模式,说明这个栈只能允许一个Activity,不允许多个相同Activity。

单一实例:singleInstance

当某个Activity设置了这种启动模式,这种启动模式很特殊,Activity只会进入和自己相同的Activity栈中,不会进入其他的栈,也就是有不止一个任务栈位于一个应用程序中。

对四种启动模式做个总结:

时间: 2024-12-24 23:57:04

Android中Activity的四种启动方式的相关文章

Android之Activity的四种启动模式

当应用运行起来后就会开启一条线程,线程中会运行一个任务栈,当Activity实例创建后就会放入任务栈中.Activity启动模式的设置在AndroidManifest.xml文件中,通过配置Activity的属性android:launchMode=""设置. 1. Standared模式(默认) 我们平时直接创建的Activity都是这种模式的Activity,这种模式的Activity的特点是:只要你创建了Activity实例,一旦激活该Activity,则会向任务栈中加入新创建的

安卓中Activity的四种启动模式

Activity的四种启动模式 (示例图) 1.standard  标准的启动模式,在回退栈中,每次访问启动的activity都是一个全新的Activity.   2.singleTop     栈顶单一,在回退栈中,如果打开的Activity就是栈顶的Activity, 将重用栈顶的这个Activity.   3.singleTask     栈内唯一,在回退栈中,如果打开一个栈中已存在的Activity,它会把这个Activity之上的所有Activity都杀死,从而保证栈内唯一.   4.

Android中activity的四个启动模式

activity的四个启动方式分别是standard.singletop.singletask.singleinstance.第一个其实就是只要新打开活动就会新建一个实例.第二个顾名思义返回栈的顶部只会有一个活动即栈顶的活动启动自己时不会新建实例还是栈顶活动本身.第三个则避免了活动的重复建立的问题一个活动建立后以后再有其他活动打开这个活动会把一开始建立的活动放到栈顶而不会新建立实例了.最后一个会新建一个独立于launch的栈以供其他活动的使用.但同时四个启动方式混杂时back之后要注意不同的栈之

Android 中的 Service 三种启动方式

1.start Service    不会随着activity finish 而关闭,必须调用 stop方法 每次调用都会调用onstart方法 package com.weidingqiang.customnetroid; import android.app.Service; import android.content.Intent; import android.os.Bundle; import android.os.IBinder; import android.util.Log;

Android中活动的四种启动模式

1.standard:每次启动都会创建该活动的一个新的实例 2.singleTop:当栈顶有该活动,则直接使用,不创建 3.singleTask:会在栈中查找是否存在该活动的实例,如果有,直接使用 并把在这个活动之上的所有活动统统出栈 4.singleInstance:启动一个新的返回栈来管理这个活动 而这个新的返回栈是用来管理那个需要共享的活动

Android中Activity的4种状态

Android中Activity的四种状态: 1)Active/Runing: 一个新 Activity 启动入栈后,它在屏幕最前端,处于栈的最顶端,此时它处于可见并可和用户交互的激活状态. 2)Paused:当 Activity 被另一个透明或者 Dialog 样式的 Activity 覆盖时的状态.此时它依然与窗口管理器保持连接,系统继续维护其内部状态,所以它仍然可见,但它已经失去了焦点故不可与用户交互. 3)Stoped :当 Activity 被另外一个 Activity 覆盖.失去焦点

Android Activity 的四种启动模式 lunchMode 和 Intent.setFlags();singleTask的两种启动方式。

Android Activity 的四种启动模式 lunchMode 和 Intent.setFlags(); 一.Android Activity 四种启动模式 lunchMode 在Manifest 配置文件中的属性如下: (1) android:launchMode="standard" (2)android:launchMode="singleTop" (3)android:launchMode="singleTask" (4)andro

Android Activity:四种启动模式,Intent Flags和任务栈(转自他人博客)

在Android中每个界面都是一个Activity,切换界面操作其实是多个不同Activity之间的实例化操作.那各个页面跳转关系如何决定呢?如果启动了顺序启动了ABCD的Activiy,如何从D调回到B呢?下面讲述一下Acitivity的四种启动模式.讲解启动模式之前,有必要先讲解一下“任务栈”的概念; 任务栈 每个应用都有至少一个任务栈,是用来存放Activity的,功能类似于函数调用的栈,先后顺序代表了Activity的出现顺序:比如Activity1-->Activity2-->Act

转 Activity的四种启动模式和onNewIntent()

转自 http://blog.csdn.net/linghu_java/article/details/17266603 在Android中每个界面都是一个Activity,切换界面操作其实是多个不同Activity之间的实例化操作.在Android中Activity的启动模式决定了Activity的启动运行方式. Android总Activity的启动模式分为四种: Activity启动模式设置: <activity android:name=".MainActivity" a