Activity 详解

Activity 生命周期

1.activity 的4种状态

四大组件之一,通常有4种运行状态


4种运行状态

running Activity 可交互阶段, 屏幕可响应, 处于 栈顶
paused 可见 ,失去屏幕交互 ,所有数据变量都在 (内存紧张时,会被回收 )
stopped 不可见 成员变量等 可能还在 (内存不紧张时)
killed 系统回收 了

2.activity生命周期分析

Activity 详解_第1张图片
生命周期
Activity 详解_第2张图片

onCreate() 加载布局 数据加载, 图片预加载等
onStart() activity 正在启动 处于用户可见,还没有前台显示,无法与用户进行交互
onRestart()
onResume() activity 已在前台 可见 与用户交互
onPause() 停止 可见 不可触摸
onStop()
onDestroy()

3.android 进程优先级

Activity 详解_第3张图片
image.png

前台进程 可与用户交互

可见进程 不可交互

服务进程 service

后台进程 比如 activity 前台 点击 home 键 就进入 后台了(不会立刻回收 ,根据内存情况,进行相应回收 )

空进程 不属于任何一种,优先级最低 不活跃 出于缓存的目的进行保留,android 系统可以随时杀掉它

android 任务栈

task 栈结构 (后进先出) 完全退出应用 需要清空所有栈


Activity 详解_第4张图片

activity 启动模式 lauch mode

standard 标准模式

  • 每次启动 activity,都会重新创建 一个实例 ,加到任务栈task中
  • 每次都会重新走生命周期(消耗内存资源)

singleTop 栈顶复用模式

  • 在栈顶时,就会复用,调用onNewIntent

singleTask 模式(单例)

  • 把当前activity任务栈以上的activity都移除 ,调用onNewIntent

singleInstance模式 独享任务栈,用的比较少

android:screenOrientation="portrait" 屏幕为竖屏 ,不切换 activity
10)横竖屏切换时候activity的生命周期:
1、不设置Activity的android:configChanges时,切屏会重新调用各个生命周期,切横屏时会执行一次,切竖屏时会执行两次
2、设置Activity的android:configChanges="orientation"时,切屏还是会重新调用各个生命周期,切横、竖屏时只会执行一次
3、设置Activity的android:configChanges="orientation|keyboardHidden"时,切屏不会重新调用各个生命周期,只会执行onConfigurationChanged方法

scheme 跳转协议

Activity 详解_第5张图片
image.png

使用方法:客户端 向h5页面 注册一个URL scheme
使用例子参考:
Android产品研发(十一)-->应用内跳转Scheme协议 http://blog.csdn.net/qq_23547831/article/details/51685310

你可能感兴趣的:(Activity 详解)