合理应用activity的启动方式优化程序内存

在Android中每个界面都是一个Activity,切换界面操作其实是多个不同Activity之间的实例化操作。在Android中Activity的启动模式决定了Activity的启动运行方式。

Activity启动方式有四种,分别是:

standard

singleTop

singleTask

singleInstance

可以根据实际的需求为Activity设置对应的启动模式,从而可以避免创建大量重复的Activity等问题

起作用的场合就是我们每次startActivity时~~~

standard

每次通过这种模式来启动目标activity时,android总会为目标activity创建一个新的实例,并将该activity添加到当前task栈中——这种模式不会启动新的task,新的activity添加到原有的task中。

singleTop

这种模式与standard模式基本相似,但有一点不同,当将要被启动的目标activity已经位于task栈顶的时,系统不会重新创建目标activity的实例,而是直接使用已有的activity实例

singleTask

采用这种模式加载的activity在同一个task内只有一个实例,当系统采用singleTask模式启动目标activity时,可分为如下三种情况:

如果将要启动的目标activity不存在。系统会创建目标activity的实例,并将他加入task的栈顶。

如果将要启动的目标activity已经位于栈顶,与singletop情况类似。

如果将要启动的目标activity已经存在,但是不位于栈顶,则它之上的activity都出栈,从而是目标activity到达栈顶。

singleInstance

只有一个实例,单独在一个task中,自己对应一个回退栈。

感恩:

http://blog.csdn.net/shinay/article/details/7898492

http://www.cnblogs.com/fanchangfa/archive/2012/08/25/2657012.html

http://www.cnblogs.com/meizixiong/archive/2013/07/03/3170591.html

时间: 2024-11-16 11:50:37

合理应用activity的启动方式优化程序内存的相关文章

android中的activity的启动方式有哪几种

问题描述 android中的activity的启动方式有哪几种 android中的activity的启动方式有哪几种 android中的activity的启动方式有哪几种 解决方案 一共有4种: (1)Standard (2)SingleTop (3)SingleTask (4)SingleInstance 在配置文件中对相应的Activity的标签LaunchMode进行修改就可以了. 解决方案二: 4种: standard --> 默认配置,每创建一个activity都会创建一个实例放入 s

Android APP启动方式、启动流程及启动优化分析_Android

本文章向大家介绍Android app应用启动的一些相关知识,包括app启动方式.app启动流程和app启动优化等知识!  app应用启动方式 1.冷启动  当启动应用时,后台没有该应用的进程,这时系统会重新创建一个新的进程分配给该应用,这个启动方式就是冷启动.冷启动因为系统会重新创建一个新的进程分配给它,所以会先创建和初始化Application类,再创建和初始化MainActivity类(包括一系列的测量.布局.绘制),最后显示在界面上. 2.热启动 当启动应用时,后台已有该应用的进程(例:

Android APP启动方式、启动流程及启动优化分析

本文章向大家介绍Android app应用启动的一些相关知识,包括app启动方式.app启动流程和app启动优化等知识! app应用启动方式 1.冷启动 当启动应用时,后台没有该应用的进程,这时系统会重新创建一个新的进程分配给该应用,这个启动方式就是冷启动.冷启动因为系统会重新创建一个新的进程分配给它,所以会先创建和初始化Application类,再创建和初始化MainActivity类(包括一系列的测量.布局.绘制),最后显示在界面上. 2.热启动 当启动应用时,后台已有该应用的进程(例:按b

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

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

Android Activity中启动另一应用程序的方法,无需得到类名

  Android Activity中启动另一应用程序的方法,无需得到类名    在网上搜索了一会相关的实现代码,发现所有的文章都说是需要包名和类名.但是人家的程序,我们怎么可能知道哪个是第一个启动的Activity?所以,真正用在项目上,那种方法基本上没什么用的.于是查看官方文档,发现这样一个方法:  Java代码   public abstract Intent getLaunchIntentForPackage (String packageName)   英文原文:Return a "g

Android中Activity的启动流程和组织管理方式(Backstack、Task)

前言: Android对Activity的组织管理会引入一些名词概念术语,像Stack.Task等,本文会做简单介绍.Activity的启动.切换以及组织管理会受不同的配置和属性的影响,本文会简单介绍一些相对重要和典型的概念,比如BackStack.Affinity. 文章目录: • 概述• Launcher启动Activity• 应用内启动子Activity• 锁屏状态下启动Activity• Stack.Task.BackStack.Affinity 此文章原始是PPT格式已转换为PDF,请

activity的启动模式和栈管理

 在学习Android的过程中,Intent是我们最常用Android用于进程内或进程间通信的机制,其底层的通信是以Binder机制实现的,在物理层则是通过共享内存的方式实现的.     Intent主要用于2种情景下:(1)发起意图  (2)广播     它的属性有:ComponentName,action,data,category,extras,flags等,通常情况下,进行Intent的匹配涉及到3个属性:Action,Data,Category.这些东西都需要了解才能对它有个深入的体会

如何把一个软件的的启动方式改为usbkey启动?

问题描述 如何把一个软件的的启动方式改为usbkey启动? usbkey启动代替手动输入密码,是不是要先写一个程序读取usbkey中的秘钥写入到磁盘,然后在修改软件的启动方式到磁盘中找秘钥?本人小白,求大神指点,比如用到什么技术,参考什么资料或者案例···跪谢!!! 解决方案 去看看JAVA加密与解密的艺术.USBKEY启动里面的安全算法用的是硬实现,如果没有用USBKEY的话,加密算法就是软实现.需要提供和USBKEY里面用到的加密算法相同的软实现的provider:这部分内容非常多,建议楼主

c++,如何优化程序才不超时?(在线等)

问题描述 c++,如何优化程序才不超时?(在线等) 题目描述 沼跃鱼通过你的帮助顺利地打开了宝箱,得到了一把"BILIBILI"电击枪.但是沼跃鱼眉头一皱,发现事情并不单纯--宝箱被拿走后房间入口的那块大石板突然变成了山岭巨人.此时沼跃鱼只好拿着刚到手的电击枪迎战了.沼跃鱼使用了"洞悉"技能看穿了山岭巨人的生命值和电击枪的伤害计算方式.电击枪有四个能量槽,每个能量槽都有n种电力输出大小,若四个能量槽分别选择a1,a2,a3,a4的电力输出大小,则总的伤害为a1+a2