Activity的四种状态和启动模式

您所在的位置:网站首页 Activity的状态包括睡眠状态吗 Activity的四种状态和启动模式

Activity的四种状态和启动模式

2024-07-13 09:11| 来源: 网络整理| 查看: 265

Activity Activity的四种状态1. Active/Running2. Paused3. Stopped4. Killed状态转换 Activity启动模式standard标准模式singleTop(单顶)singleTask(单一任务)singleInstance单例模式如何使用

Activity的四种状态 1. Active/Running

当一个Activity被创建后,完全显示在屏幕的最前端,且可以执行交互。该Activity位于Activity任务栈的栈顶。依次经过生命周期的回调onCreate()->onStart()->onResume(),执行完onResume()回调后,该Activity处于Running状态,即运行状态。

onCreate():在系统首次创建Activity时触发。这个回调方法必须被实现,而其它回调方法可以不强制要求实现,可以根据自己的需要实现。在这个方法里一般进行声明界面(setContentView(View)),绑定视图findViewById(int),初始化成员变量。若Bundle参数不为null通过Bundle参数恢复数据。执行完onCreate()后,该Activity处于"以开始状态",接下来依次执行onStart(),onResume()回调方法。

2. Paused

当前Activity失去焦点时,一个非全屏的Activity或者是半透明的Activity放置到栈顶时,虽然仍然部分可见,但已经不能再和用户进行交互。他仍然与窗口管理器保持联系,保持所有的状态和成员信息。

3. Stopped

当被另一个Activity完全覆盖,不可见时进入Stopped状态,仍然保持着状态和成员信息。无法与用户进行交互

4. Killed

如果一个Activity处于Paused或Stopped状态,系统可以将它从内存中删除,有两种删除方法,一种是要求它自己结束,一种是直接停止该Activity的线程。被销毁的Activity再次显示给用户时需要重新加载。

状态转换

来自百度

Activity启动模式

Activity启动模式一共有四种:

standardsingleTopsingleTasksingleInstance standard标准模式 创建没有限制,每次使用intent都是一个新的ActivityActivity被创建在启动其的Activity的任务栈顶端Android Lollipop之后,被启动的Activity如果不是同一个应用,会新建一个任务栈 singleTop(单顶) 当顶部已经有相同的Activity时,不会再创建新的实例,而是回调任务栈中已经存在的该Activity的onNewIntent( )方法。当前Activity位于栈顶,如果想要再创建一个相同的Activity,则不会成功,即保持栈顶该Activity的实例只有一个。不是栈顶时和standard一样 singleTask(单一任务) Activity在Android系统中只允许存在一个实例。当想要创建的Activity已经有了实例的时候,会将之前的Activity在其任务栈上位于他之上的所有Activity销毁,以让目标Activity处于栈顶。 singleInstance单例模式 这种启动模式和singleTask几乎一样,它也只允许系统中存在一个目标Activity但是一个Activity承包了整个任务栈 如何使用 在AndroidMenifest.xml文件中设置 - 在标签中设置android:launchMode="****"属性即可通过为Intent添加标识来设置 - intent.addFlags();

FLAG_ACTIVITY_NEW_TASK 与"singleTask"启动模式的作用一样。

FLAG_ACTIVITY_SINGLE_TOP 与"singleTop"启动模式的作用一样。

FLAG_ACTIVITY_CLEAR_TOP



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3