android 基础知识 四大组件之Activity(一)

从离校开始就从事Android开发了,还没有怎么写过博客,记录自己所学的知识点,趁现在有时间,在复习下Android基础知识。

我们都知道Android有四大组件、六大布局、五大存储,而Android四大组件分别为  activity、service、content provider、broadcast receiver。今天主要讲的是Activity

一、Activity的生命周期

      

从图上不难看出Activity整个生命周期的4种状态、7个重要方法和3个嵌套循环

1、 4种状态

1.1 活动(Active/Running)状态

     当Activity运行在屏幕前台(处于当前任务活动栈的最上面),此时它获取了焦点能响应用户的操作,属于运行状态,同一个时刻只会有一个Activity 处于活动(Active)或运行

1.2 暂停(Paused)状态

    当Activity失去焦点但仍对用户可见(如在它之上有另一个透明的Activity或Toast、AlertDialog等弹出窗口时)它处于暂停状态。暂停的Activity仍然是存活状态(它保留着所有的状态和成员信息并保持和窗口管理器的连接),但是当系统内存极小时可以被系统杀掉

1.3 停止(Stopped)状态

   完全被另一个Activity遮挡时处于停止状态,它仍然保留着所有的状态和成员信息。只是对用户不可见,当其他地方需要内存时它往往被系统杀掉

1.4 非活动(Dead)状态

   Activity 尚未被启动、已经被手动终止,或已经被系统回收时处于非活动的状态,要手动终止Activity,可以在程序中调用"finish"方法。如果是(按根据内存不足时的回收规则)被系统回收

2、7个重要方法

2.1 onCreate(Bundle savedInstanceState)

  通常用于初始化设置: 1、为Activity设置所要使用的布局文件2、为按钮绑定监听器等静态的设置操作

2.2 onStart()

  当Activity可见未获得用户焦点不能交互时系统会调用

2.3 onRestart()

  当Activity已经停止然后重新被启动时系统会调用

2.4 onResume()

  当Activity可见且获得用户焦点能交互时系统会调用

2.5 onPause()

  当系统启动另外一个新的Activity时,在新Activity启动之前被系统调用保存现有的Activity中的持久数据、停止动画等,这个实现方法必须非常快。当系统而不是用户自己出于回收内存时,关闭了activity 之后。用户会期望当他再次回到这个activity 的时候,它仍保持着上次离开时的样子。此时用到了onSaveInstanceState(),方法onSaveInstanceState()用来保存Activity被杀之前的状态,在onPause()之前被触发,当系统为了节省内存销毁了Activity(用户本不想销毁)时就需要重写这个方法了,当此Activity再次被实例化时会通过onCreate(Bundle savedInstanceState)将已经保存的临时状态数据传入因为onSaveInstanceState()方法不总是被调用,触发条件为(按下HOME键,按下电源按键关闭屏幕,横竖屏切换情况下),你应该仅重写onSaveInstanceState()来记录activity的临时状态,而不是持久的数据。应该使用onPause()来存储持久数据

2.6 onStop()

  当Activity被新的Activity完全覆盖不可见时被系统调用

2.7 onDestroy()

  当Activity(用户调用finish()或系统由于内存不足)被系统销毁杀掉时系统调用,(整个生命周期只调用1次)用来释放创建的资源,如结束线程等

3、3个嵌套循环 

3.1 Activity完整的生命周期:从第一次调用onCreate()开始直到调用onDestroy()结束
3.2 Activity的可视生命周期:onStart()->onRestart()->onStop()
3.3 Activity的前台生命周期:从调用onResume()到相应的调用onPause()。
  




  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值