激活activity的方法有:1. 默认启动模式standard;2. 栈顶复用模式singleTop;3. 栈内复用模式singleTask;4. 全局少数模式singleInstance。其中,默认启动模式standard:可以被设定,不在manifest设定时候,Activity的默认模式就是standard。
一、激活activity的方法
1. 默认启动模式standard
该模式可以被设定,不在manifest设定时候,Activity的默认模式就是standard。在该模式下,启动的Activity会依照启动顺序被依次压入Task中。
2. 栈顶复用模式singleTop
在该模式下,如果栈顶Activity为我们要新建的Activity(目标Activity),那么就不会重复创建新的Activity。每个Activity界面都只有一个显示当前界面名称的TextView和一个用来组跳转的Button,所以应用OneText的功能就是从活动1跳转到活动2,活动2继续跳转活动2。
3. 栈内复用模式singleTask
与singleTop模式相似,只不过singleTop模式是只是针对栈顶的元素,而singleTask模式下,如果task栈内存在目标Activity实例,则:
将task内的对应Activity实例之上的所有Activity弹出栈。
将对应Activity置于栈顶,获得焦点。
程序主界面,我们肯定不希望主界面被多创建,而且在主界面退出的时候退出整个App是较好的设想。耗费系统资源的Activity:对于那些及其耗费系统资源的Activity,我们可以考虑将其设为singleTask模式,减少资源耗费。
4. 全局少数模式singleInstance
这是我们最后的一种启动模式,也是我们最恶心的一种模式:在该模式下,我们会为目标Activity分配一个新的affinity,并创建一个新的Task栈,将目标Activity放入新的Task,并让目标Activity获得焦点。新的Task有且只有这一个Activity实例。如果已经创建过目标Activity实例,则不会创建新的Task,而是将以前创建过的Activity唤醒(对应Task设为Foreground状态)。
延伸阅读:
二、activity基本状态
1.Active/Running
一个新 Activity 启动入栈后,它显示在屏幕最前端,处理是处于栈的最顶端(Activity栈顶),此时它处于可见并可和用户交互的激活状态,叫做活动状态或者运行状态(active or running)。
2. Paused
当 Activity失去焦点, 被一个新的非全屏的Activity 或者一个透明的Activity 被放置在栈顶,此时的状态叫做暂停状态(Paused)。此时它依然与窗口管理器保持连接,Activity依然保持活力(保持所有的状态,成员信息,和窗口管理器保持连接),但是在系统内存极端低下的时候将被强行终止掉。所以它仍然可见,但已经失去了焦点故不可与用户进行交互。
3. S较好ped
如果一个Activity被另外的Activity完全覆盖掉,叫做停止状态(S较好ped)。它依然保持所有状态和成员信息,但是它不再可见,所以它的窗口被隐藏,当系统内存需要被用在其他地方的时候,S较好ped的Activity将被强行终止掉。
4. Killed
如果一个Activity是Paused或者S较好ped状态,系统可以将该Activity从内存中删除,Android系统采用两种方式进行删除,要么要求该Activity结束,要么直接终止它的进程。当该Activity再次显示给用户时,它必须重新开始和重置前面的状态。
以上就是关于activity的内容希望对大家有帮助。