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

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

一、Activity的生命周期

      android 基础知识 四大组件之Activity(一)_第1张图片

从图上不难看出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()。
  




更多相关文章

  1. Android 系统编译移除应用
  2. Android系统平台progurad混淆功能使能
  3. Android调用系统添加和编辑联系人的返回结果
  4. Android 网络状态实时检测
  5. Android系统四层架构分享
  6. Android沉浸式状态栏的开发
  7. Android系统分区
  8. Android如何设置顶部状态栏颜色(主题)

随机推荐

  1. 手动更新 Android(安卓)SDK
  2. android 笔记 --- Android应用程序的权限
  3. android字体加粗的方法
  4. 从Android界面开发谈起
  5. android 中xml文件中出现 Attr.value mis
  6. android 自定义控件属性
  7. 对android的android:taskAffinity初识
  8. gihub上不错的几个Android(安卓)Project
  9. 在Android中查看和管理sqlite数据库
  10. Android(安卓)八款开源 Android(安卓)游