博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Activity的生命周期以及启动方式
阅读量:5283 次
发布时间:2019-06-14

本文共 999 字,大约阅读时间需要 3 分钟。

1、Activity的生命周期

     

     总的来说,Activity可以分为4种状态:

     1> 运行状态:当活动处于返回栈栈顶时,即用户交互时。

     2> 暂停状态:当活动不再处于栈顶,但依然可见。比如弹出对话框时,Activity是可见的,但是无法对其进行操作。

     3> 停止状态:活动不再处于栈顶,且不可见。系统任然会保留活动的相应状态和成员变量。

     4> 销毁状态:活动从返回栈中移出。

     针对Activity不同时期调用的不同方法,将Activity分为三个生存期

     1> 完整生存期:Activity在onCreate()和onDestory方法之间所经历的。一般在onCreate中完成各种初始化,在onDestory中释放内存。

     2> 可见生存期:Activity在onstart和onStop中所经历的。在该周期里,Activity对于用户是可见的,也许无法和用户进行交互(弹出框)。

     3> 前台生存期:Activity在onResume和onPause之间所经历的。该生存期下,活动是可见的,且是可以与用户交互的。

 

2、Activity的启动方式

     Activity一共有四种启动方式,在AndroidManifest.xml里通过属性“android:launcherMode”来设置。

     1> standard:默认模式,无论返回栈中是否已经存在该实例,都要创建一个新的实例,并处于栈顶的位置。

          A>B>A>A

     2> singleTop:当启动该Activity时,首先检测返回栈的栈顶是否存在该实例,如果没有,则创建新实例;如果已经存在且处于栈顶,则不创建。

          A>B>A ,再次启动A,返回栈:A>B>A

     3> singleTask:当启动该Activity时,检测返回栈中是否有该实例,如果没有则创建新实例,反之,将该实例之后的所有Activity销毁,处于栈顶。

          A>B>C ,启动A,返回栈:A

     4> singleInstance:之前的三种模式都无法实现共享活动的实例,因为每一个应用程序都有自己的返回栈,同一个活动在不同的返回栈中必然会创建新的实例。因此,可以设置           该Activity的启动方式为singleInstance,启动一个新的返回栈来管理该活动实现“共享活动实例”。

      

转载于:https://www.cnblogs.com/xiaozhuazheng/p/6611585.html

你可能感兴趣的文章
[转]Java中继承、多态、重载和重写介绍
查看>>
【转】如何建立一个样式新颖的CSS3搜索框
查看>>
iOS Touch ID使用
查看>>
java 实现二分查找算法
查看>>
【C++】vector用法详解
查看>>
编译cubieboard android 源码过程详解之(四):extract-bsp
查看>>
Scrapy安装错误:Microsoft Visual C++ 14.0 is required...
查看>>
centos7安装MongoDB3.4
查看>>
微信小程序制作下拉列表
查看>>
八款Android 开发者必备的小工具
查看>>
【20171006】2017暑假北京学习 day 4 - 2 最小生成树、prim、Kruskal算法简述及其扩展...
查看>>
第四章 自定义标签的解析(待续)
查看>>
IDA的头像
查看>>
Ubuntu安装SSH
查看>>
中央定时器控制
查看>>
JEUS 启动关闭脚本
查看>>
ACDsee的安装过程
查看>>
[转帖]NUMA架构的CPU -- 你真的用好了么?
查看>>
使用SCOM常用的一些ManagementPack
查看>>
[转]《深度探索C++对象模型》读书笔记[一]
查看>>