Activity的生命周期

Activity是Android中的四大组件之一,也是最基本,最重要的组件,是android系统提供一个可视化的,能与用户交换的组件。
系统提供的组件,不需要用户实例化,用户也不能实例化,是系统进行回调,例如web开发的servlet也是系统提供的,和android 的其他系统组件一样。

那么不需要我们实例化我们怎么用呢,这些组件都有相同的特点就是:

  1.都需要在配置文件中注册  2.都需要自定义类去继承系统的Api  3.都有自己的生命周期

那么Activity的生命周期有那些方法呢:

  1.onCreate  2.onStart  3.onrestart  4.onResume  5.onpause  6.onstop  7.ondestroy

Activity总共有以上7个回调方法

Activiy总共有三种小的生命周期

场景一

一个Activity的开启到销毁

OnCreate---onStart----onResume------onPause-----Onstop---onDestroy 

这是一个完整的生命周期

场景二

A Activity 跳转到 到 B Activity (BActivity是完全覆盖AActivity)

AOnCretate-----AOnStart----AOnResume------AOnPause------BOnCreate-----BOnStart------BOnReSume ----AOnStop

B activity 返回到A Activity生命周期执行的回调是:

BOnPause---AOnRestart--AOnResume---BOnstop---BOnDestory

场景三

A Activity跳转到B Activity(B Activity 是一个 对话框形式的Activity 或者 BActivty是一个透明的)

AOnCretate-----AOnStart----AOnResume ------AOnPause------BOnCreate-----BOnStart------BOnReSume ----

B activity 返回到A Activity生命周期执行的回调是:

BOnPause---AOnResume---BOnstop---BOnDestory

场景四

手机的横竖屏切换,android的生命周期方法的重新执行,

    onPause    onstop    ondestroy    oncreate    onstart    onresume

如果想横竖屏切换时,不重新走生命周期,需要清单为Activity配置属性:configChanges
也可以设置屏幕 锁定为横屏或竖屏 ,screenOrientation:lanscape | portriant

2、Activity的四种状态

运行 onResume暂停 onPause停止 onStop销毁 onDestroy

3、Activity的三个生命周期

1>完整的 onCreate――onDestroy2>可见的 onStart――onStop3>活动的 onResume――onPause

Activity的堆栈管理模式

  

 数据结构  队列:先进先出  栈:先进后出  每打开一个Activity,将会入栈,退出一个,将会出栈,采用栈的先进后出结构

启动模式

standard 标准启动singleTop 单一栈顶保证栈顶只有一个实例,任务栈中可能有很多实例场景:浏览器 书签singleTask 单一任务栈  保证 所在的任务栈 ,只有一个实例  比如说设置 A 为此模式,保证整个任务栈只有A一个实例,如果栈顶有其他Activity,再打开A时,将栈顶其他Activity全部出栈。场景 如:webkit 内核singleInstance单一实例  保证整个系统的栈中,只有一个实例  比如说设置 A 为此模式,那么 A将单独使用一个任务栈场景:打电话 、闹铃响

如有疑问大家留言或者到社区讨论,共同进步,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

更多相关文章

  1. 高级Redis应用进阶课 一站式Redis解决方案
  2. Android实现记事本小功能
  3. Service完全解析 分类: ANDROID
  4. 主题:android底部菜单应用
  5. Service生命周期(Android)
  6. Android(安卓)ViewPager+Fragment滑动选项卡,tab点击选项卡
  7. android动态加载ClassLoader机制
  8. Android简单音乐播放实例
  9. Android(安卓)Service生命周期及用法!

随机推荐

  1. centos7 系统自带的OpenJDK切换成的Oracl
  2. flink sql使用中的一个问题
  3. 让你的 Jenkins 更强壮的高可用实践
  4. 如何开始我们的 DevOps 转型之旅?
  5. Flink计算PV,UV的案例及问题分析
  6. 轻量化 Jenkins 最佳实践
  7. 浪尖刷过leetcode的题
  8. 计算文本算式,其实很简单
  9. Flink通过异步IO实现redis维表join
  10. 最简单的全年个税计算模板,拿走不谢