Android—Activity详解
来源:互联网 发布:老备案域名出售 编辑:程序博客网 时间:2024/06/17 17:05
注:如果文本出现不能自动换行现象,请将游览器调成兼容模式
概述
Android应用中的最重要组件单位之一,是Android应用中负责与用户交互的组件,通俗来讲就是代表一个界面。
Activity的生命周期
四种状态
运行状态:当前Acitivity位于前台,用户可见,可以获得焦点暂停状态:其他Acitivity位于前台,该Activity依然可见,只是不能得到焦点停止状态:该Acitivity不可见,失去焦点。销毁状态:该Acitivity结束,或Activity所在的进程被结束
生命周期回调方法
onCreate():当Acitivity第一次启动的时候,触发该方法,可以在此时完成活动的初始化工作。onStart(): 该方法的触发表示所属Activity将被展现给用户,但不可交互。 onRestart(): 当处于停止状态的Activity需要再次展现给用户的时候,触发该方法。onResume(): 所属Activity变成可交互时回调此方法。onPause(): 当一个正在前台运行的Activity因为其他的活动需要前台运行而转入后台运行的时候,触发该方法。这时候需要将活动的状态持久化,比如正在编辑的数据库记录等。onStop(): 当一个Activity不再需要展示给用户的时候,触发该方法。如果内存紧张,系统会直接结束这个活动,而不会触发 onStop()方法。 所以保存状态信息是应该在onPause()时做,而不是onStop()时做。活动如果没有在前台运行,都将被停止或者Linux管理进程为了给新的活动预留足够的存储空间而随时结束这些活动。因此对于开发者来说,在设计应用程序的时候,必须时刻牢记这一原则。在一些情况下,onPause方法或许是活动触发的最后的方法,因此开发者需要在这个时候保存需要保存的信息。onDestroy(): 当活动销毁的时候,触发该方法。和onStop()方法一样,如果内存紧张,系统会直接结束这个活动而不会触发该方法。
操作Activity时状态流程
启动一个Acitivity到运行状态中回调的方法onCreate()—OnStart()—onResume()
运行状态到暂停状态回调的方法
onPause()
暂停状态到运行状态回调的方法
onResume()
运行状态到停止状态回调的方法
onResume()—onPause()— onStop()
停止状态到运行状态回调的方法
onRestart()—onStart()— onResume()
运行状态到结束这个Activity回调的方法
onPause()—onStop()— onDestroy()
Activity的加载模式
standard: 标准的加载模式,默认的加载模式。
每次通过这种方式来启动一个Acitivity时,Android总会为目标创建一个新的实例,并将该Activity添加到当前的Task栈中。这种模式不会启动新的Task,新Activity将被添加到原有的Task中
singleTop:Task栈顶的单例模式。
当要创建的Activity不存在,Activity会创建一个新的Activity,并添加到Task栈顶中 当要创建的Activity存在,如果此Activity位于Task栈顶,此Activity不会创建一个新的实例,而是复用以这个Activity。 当要创建的Activity存在,如果此Activity不是位于Task栈顶,此Activity将会创建一个新的实例,并添加到Task栈中,之前创建的Activity还会有。
singleTask:Task内的单例模式
当要创建的Activity不存在,Activity会创建一个新的Activity,并添加到Task栈中 当要创建的Activity存在,如果此Activity位于Task栈顶,此Activity不会创建一个新的实例,而是复用以这个Activity。 当要创建的Activity存在,如果此Activity没有位于Task栈顶,那么系统将会将此Activity移除Task栈中,并将目标Activity转到Task栈顶,从而复用这个Activity。
singleInstance: 全局单例模式
当要创建的Activity不存在,系统会先创建一个新的Task栈,只用来存放此Task栈,在创建一个Activity实例,并将此Activity添加到新的Task栈中。 当要创建的Activity存在,无论它位于哪个应用程序中、位于哪个Task中,系统都会把该Activity的Task转到前台,从而使Activity显示出来。
1 0
- Android—Activity详解
- Android基本组件——Activity详解
- Android:Activity——生命周期深入详解
- Android——Activity启动模式详解
- Android Activity类详解
- Android 详解Activity
- Android Activity BroadCastRceiver 详解
- Android Activity 生命周期详解
- Android Activity生命周期详解
- android activity 生命周期详解
- Android Activity生命周期详解
- android Activity详解
- Android Activity 详解
- android的activity详解
- 详解Android Activity组件
- Android Activity生命周期详解
- Android - Activity(活动) 详解
- Android Activity生命周期详解
- Linux crontab定时执行任务 命令格式与详细例子
- 动态规划问题系列---Disk Schedule
- React 相关方法(API)介绍-元素与组件操作
- iOS tcp 接收数据处理
- Jackson实现Object对象与Json字符串的互转
- Android—Activity详解
- leetcode-52. N-Queens II
- java中的foreach循环
- opencv rect类
- cuda调优
- Spark入门实战指南——HIVE
- java中遍历MAP的几种方法
- 私有成员变量在block如何避免循环引用
- js 获取、清空input type="file"的值示例代码