Android -- 启动模式(singleTop启动模式)

了解了标准的启动模式,是使用任务栈,先进后出,后进先出的模式进行启动的,下面我们来看另外一个singleTop启动模式。

1、我们来看图,这个页面我增加了2个按钮,分表转A页面和B页面,先来看A,我们的taskid=18,实例=*f648

2、点击【跳转A页面Activity】,发现了吗,没有变化,实例还是*f648

3、我们点击【跳转B页面Activity】,taskid=18,实例=*54f0,新生成了个实例。

4、我们再点击【跳转A页面Activity】,实例变了,和我们第2步实例不一样了,变成了*8a50

5、在多点几次【跳转A页面Activity】,实例仍然是*8a50

是否有所发现呢,这里的A页面的Activity我们设置为singleTop启动模式,如果当前要跳转的Activity实例处于栈顶那么就不会再为当前实例创建新的实例

配置启动模式

时间: 2024-12-23 06:33:29

Android -- 启动模式(singleTop启动模式)的相关文章

Android进阶--Acticivity的启动模式

一.引言 我们在多次启动同一个Activity时,系统默认会重复创建多个实例,这样看上去便十分的愚蠢,所以android在设计时提供了启动模式来修改系统的默认行为.目前有四种启动模式:standard.singleTop.singleTask和singleInstance. 二.如何设置启动模式 1.我们可以通过AndroidMenifest为Activity指定启动模式 <activity android:name=".SecondActivity" android:confi

【Android基础】Activity启动模式以及Intent Flags 与 栈 的全面解析

Android开发的过程中,Intent是我们最常用Android用于进程内或进程间通信的机制. Intent主要用于2种情景下:发起意图 .广播 其底层实现原理不在此篇文章的讨论范围,以后会陆续更新上的. 下面我就根据近期学习,总结记录下Activity启动模式 及 Intent Flags 与 栈 的关联分析. 1.首先我们先搞清楚什么是栈: 栈是一种常用的数据结构,栈只允许访问栈顶的元素,栈就像一个杯子,每次都只能取杯子顶上的东西,而对于栈就只能每次访问它的栈顶元素,从而可以达到保护栈顶元

android:process结合activity启动模式的一次实践

会有这样的场景,一个应用崩溃了,而导致的该应用崩溃的原因是,该应用占用的内存大小超过了系统分配给它的最大堆大小.对象的分配,是发生在堆(heap)上面的,系统分配给每个应用的最大堆大小是固定的. 假设,出现这种情况了,你的应用再启动一个activity,就导致了你的应用崩溃了,你的应用使用的内存超过了系统分配的最大堆大小.那么,这个时候,可以采取做法是,优化算法之类的,但是,假设,你优化了,但是,依然出现这个问题. 那么,可以采取这种做法:让被启动的Activity运行在一个新的独立进程中,这样

Ubuntu启动到字符终端模式

方法1,使用tengcy的方法,永远启动到字符终端模式 要修改 "/etc/init/gdm.conf" 将第13行: "stop on runlevel [016]" 修改为: "stop on runlevel [0126]" 这样就永远启动到字符终端模式,如果想用Xwindow,则在登录后,使用startx启动即可. 方法2,一次性进入字符终端模式 在启动时,出现grub2的启动菜单时,选择要启动的Linux内核,按e编辑启动参数. rec

让应用在横屏模式下启动

让应用在横屏模式下启动 为了让应用从竖屏模式切换为横屏模式,我们得完成三件事情: 1. 更改设备的”Supported Device Orientations”设置; 2. 让Main.storyboard中的视图控制器中的view使用横屏显示; 3. 更改ViewController.m中的一行代码,允许视图控制器自动旋转到横屏模式. // Returns a Boolean value indicating whether the view controller'??s contents s

Fedora如何设置启动默认进入文本模式

Fedora安装成功后一般启动默认进入的是图形模式,但是图形模式会占用大量的资源,对于怎样修改为启动默认进入文本模式,在网上搜索一般得到的答案是,修改/etc/inittab文件: [plain] vi /etc/inittab   Find out entry that read as follows:  id:5:initdefault:   Set the default runlevel to 3 (text mode)  id:3:initdefault:  Save and clos

eclipse的debug模式下启动不了tomcat

使用eclipse启动tomcat,正常模式下可以启动tomcat,却在debug模式下无法启动tomcat. 这个问题可能是由于eclipse和tomcat的交互而产生的,在以debug模式启动tomcat时,发生了读取文件错误,eclipse自动设置了断点,导致tomcat不能正常启动. 解决方法把breakpoints veiw都删除就好了,步骤如下:window->show view->Breakpoints.在Breakpoints视图中右键,Remove all

LINUX 命令模式和窗口模式 启动

系统启动配置文件:/etc/inittab # Default runlevel. The runlevels used are:#   0 - halt (Do NOT set initdefault to this)#   停止系统运行#   1 - Single user mode#   进入单用户模式,不带网络功能#   2 - Multiuser, without NFS (The same as 3, if you do not have networking)#   进入多用户模式

Eclipse Debug模式无法启动 Cannot connect to VM 解决

版权声明:本文为博主原创文章,未经博主允许不得转载. Eclipse普通的Run模式没有问题,Debug模式却启动不了.换了Eclipse,MyEclipse,JDK都不解决问题 后来将机器上安装的城市热点认证软件关闭,Debug模式终于可以正常启动了. 原来是城市热点和JVM的调试模式冲突了. 使用Eclipse对Java代码进行调试,无论是远程JVM还是本地JVM都会进行Socket通讯.发生这样的错误是由于Socket通讯不上造成的. 城市热点是相当霸道的,不但会修改winsock,还会监