`

Activity启动模式singleTask,singleInstance研究

 
阅读更多

Activity的四种启动模式是相当重要的知识点,给activity设置合适的启动模式有利于程序的运行。

四种启动模式中,singleTask,singleInstance最为重要。

Activity A设置为singleTask,能够保证Activity A在栈中只有一个实例,这个栈也允许存在其他的实例,无论是Activity A是在栈顶还是栈底,当有新的intent请求Activity A时,都不会创建新的实例,而是直接交给Activity A的实例来处理。

和这个模式相关的方法有onNewIntent,用来处理新的intent请求,特别需要注意的是使用startActivityForResult方法的时候,根据startActivityForResult的api说明

对于这句话不是很理解,不知道“if the activity you are launching”指的是被启动的Activity还是启动的activity,写个例子验证一下:

经验证:打印结果是I/test (17207): onActivityResult is working 0

0既是RESULT_CANCELED,也就是说直接取消了,onActivityResult收到RESULT_CANCELED在SecondActiviy,

启动之前,这也就说明了“if the activity you are launching”指的是被启动的activity。

再来介绍singleInstance,他和singleTask类似,不同点是singleInstance要求activity的实例不仅只有一个,并且整个task中只有一个activity实例,而singleTask所在的栈中允许存在其他activity的实例。

由此我们可以知道设置了singleInstance的activity也具有上面的特性,此外,启动的activity设置了singleInstance,那么无论被启动的activity有没有设置singleInstance,都无法获取返回值,可以验证一下,将HomeActivity的android:launchMode="singleInstance"

到此,今天遇到的两个问题都明白了

第一个问题:为什么调用系统的相机程序拍照,相机程序还没有启动,onActivityResult收到RESULT_CANCELED,这是因为AccountActivity设置了singleInstance。

第二个问题:取消了AccountActivity设置了singleInstance的属性,“拍照”---》“确定”,但是却无法返回AccountActivity,这是因为将图片存储在“/data/data/com.mx.browser/files/account.png”,而files目录对于文件的大小有限制

还要分析一下Camera程序的manifest.xml文件

分享到:
评论

相关推荐

    Activity启动模式之singleTask示例代码

    Android系统提供了四种基本的Activity启动模式:standard、singleTop、singleTask和singleInstance。每种模式都定义了Activity实例的生命周期和如何处理用户的操作。 二、singleTask启动模式 singleTask启动模式是...

    SingleTask与SingleInstance实例

    SingleTask与SingleInstance的区别,看过文档后还是不太明白,于是写了一个测试程序,运行TaskA,页面显示taskid,通过Next调出TaskB的Activity,每个页面都会显示当前的taskid,且通过页面透明叠加,可以清楚看到...

    singleTask和singleInstance的测试

    本测试主要关注两种特定的启动模式:singleTask和singleInstance,它们都是为了控制Activity的实例管理和任务栈的行为。 首先,`singleTask`模式是一种单实例启动模式,系统会确保只有一个该Activity的任务实例存在...

    Activity生命周期与启动模式

    理解Activity的生命周期和启动模式对于开发高效、稳定的应用至关重要。让我们深入探讨Activity的7大生命周期以及4种启动模式。 **Activity生命周期** Activity的生命周期包括了从创建到销毁的各个阶段,主要有以下...

    activity启动模式测试

    本篇文章将深入探讨Activity的四种主要启动模式:标准模式(Standard)、单例模式(SingleTop)、单任务模式(SingleTask)和单实例栈模式(SingleInstance),以及它们在实际开发中的应用场景。 1. **标准模式...

    Activity启动模式demo

    Activity的启动模式是Android系统管理Activity生命周期的重要机制,理解并熟练运用不同的启动模式对于优化用户体验和资源管理至关重要。本实例"Activity启动模式demo"全面展示了Activity启动模式的各种情况,下面将...

    Activity启动模式实验代码

    在Android应用开发中,Activity是用户界面的基本单元,它的启动模式是开发者必须了解的重要概念。本文将深入探讨Activity的不同启动模式,并通过实验代码进行详细解释。 一、Activity启动模式概述 1. **标准模式...

    android activity启动模式详解

    本文将详细讲解四种主要的Activity启动模式:standard、singleTop、singleTask以及singleInstance,并通过实际案例分析它们的应用场景。 1. standard(标准模式) standard是最常见的启动模式,每个启动请求都会...

    SingleTask和SingleInstance

    ### SingleInstance启动模式详解 #### 定义 SingleInstance模式是一种更为严格的限制形式,它不仅确保特定Activity在整个任务栈中只有一个实例,而且这个实例必须处于自己的任务栈中,即不能与其他Activity共享同一...

    Activity的启动模式

    Activity有四种启动模式:标准模式(standard)、单顶模式(singleTop)、单任务模式(singleTask)和单实例模式(singleInstance)。这些模式影响着Activity在任务(Task)中的行为、实例数量以及与其他Activity的...

    Activity四种启动模式

    本文将深入探讨Activity的四种启动模式:标准模式(Standard)、单实例模式(SingleInstance)、单任务模式(SingleTask)和单栈顶模式(SingleTop),并结合Eclipse代码进行验证。 1. **标准模式(Standard)** ...

    Activity启动模式实例

    本示例项目"Activity启动模式实例"深入探讨了四种主要的Activity启动模式:标准模式(Standard)、单实例模式(SingleInstance)、单任务模式(SingleTask)和单栈顶模式(SingleTop)。以下是对这四种启动模式的...

    android Activity 四种启动模式例子

    Activity的启动模式是决定其生命周期和实例管理的关键因素。本项目提供了对Android Activity四种启动模式的实例演示,让我们逐一深入理解这四种模式。 1. standard(标准模式) 这是Activity的默认启动模式。在...

    Android中Activity启动模式demo

    Activity有四种基本的启动模式:标准模式(Standard)、单实例模式(SingleInstance)、单任务模式(SingleTask)和单栈顶模式(SingleTop)。接下来,我们将逐一探讨这些模式。 1. **标准模式(Standard)** 这是...

    Activity启动模式及Intent的Flag属性对Intent传值的影响

    - **FLAG_ACTIVITY_NEW_TASK**:常用于启动新的任务栈,与SingleTask启动模式相似,常在BroadcastReceiver中使用。 - **FLAG_ACTIVITY_SINGLE_TOP**:与SingleTop启动模式类似,使得已存在的Activity实例被调用,...

    Android之Activity启动模式Demo

    本Demo涵盖了Activity的三种主要启动模式:standard、singleTop和singleTask,让我们逐一深入探讨。 1. **standard模式**:这是Activity的默认启动模式。在这种模式下,每次启动Activity都会创建一个新的实例,无论...

    Android各种超炫特效 Activity启动模式

    本篇文章将深入探讨Android中的四种主要Activity启动模式:标准模式(Standard)、单实例模式(SingleTop)、单任务模式(SingleTask)和单栈顶模式(SingleActivity)。 1. **标准模式(Standard)**:这是...

    Android的Activity的Launch模式之SingleTask案例

    `SingleTask`是Android四种启动模式之一,其他三种为`standard`、`singleTop`和`singleInstance`。`SingleTask`模式的特点是,系统中只会存在一个该Activity的实例,且它始终位于一个单独的任务栈(Task)中。如果...

    Android Activity启动模式之singleTask实例详解

    `singleTask`启动模式的主要特点是,每个具有这种启动模式的Activity只能存在于一个单独的任务栈中,并且是该栈的根Activity。当用户启动一个`singleTask`模式的Activity时,系统会检查当前是否有对应的Activity实例...

    android的Activity启动模式

    本文将深入探讨Android的四种Activity启动模式:标准模式(Standard)、单实例模式(SingleInstance)、单任务模式(SingleTask)和单栈顶模式(SingleTop),并结合实际代码示例进行详细解析。 1. 标准模式...

Global site tag (gtag.js) - Google Analytics