最近在学习Android编程,看的是郭大神的《第一行代码》。

Android系统的四大组件:活动(Activity) 、服务(Service) 、广播接收器(Broadcast Receiver)和内容提供器(Content Provider)。

在活动生命周期这部分,概念有点多,所以整理了记下来。

首先是活动Activity是可以层叠的,一个新启动的活动是可以覆盖在旧的活动上面的。当用户点击BACK键销毁当前页面的活动时,下面的活动就会显示出来。这种管理方式其实就是通过来实现的。

活动主要有四种状态:

运行状态:处于栈顶时刻的状态。

暂停状态:虽然在这个状态下,该活动并没有处于栈顶。但是对于用户界面来说,这个活动仍然是可见的。比如对话框形式的活动,并没有占满整个屏幕,只是占据了屏幕的一部分。在对话框下面的活动此时虽然没有处于栈顶的状态,但是对用户仍然是可见的。这就是处于暂停状态。

停止状态**:**在停止状态下,活动不仅没有处于栈顶,而且也是不可见的。

销毁状态:顾名思义,这个活动在活动栈中已经被移出。

Activity中的七个回调方法:

  • onCreate()
    活动初始化的时候调用。初始化操作比如加载活动的布局和绑定组件的活动。

  • onStart()

    活动又不可见到可见的时候调用。
    
  • onResume()

    活动处于栈顶且正在运行状态的时候,已经准备好了和用户进行交互的时候调用。
    
  • onPause()

    系统准备启动或者恢复另一个活动的时候调用。
    
  • onStop()

    使活动完全不可见的时候调用。与onPause()不同之处在于:比如此刻需要启动一个对话框形式的活动,将调用onPause而不是onStop,因为当前活动在对话框活动启用后仍然是可见的。
    
  • onDestroy()

    销毁活动时调用
    
  • onRestart()

    使处于停止状态的活动变为运行状态的时候调用。
    

所以完整的活动生存周期是处于onCreate()和onDestroy()之间的。

可见生存周期是处于onStart()和onStop()之间。

前台生存周期是在onResume()和onPause()之间。

这个时候要注意区别可见周期和前台周期。可见并不代表前台,还是拿对话框活动来说,对话框活动启动时,处于前台,而之前的活动又前台变为可见。所以启动对话框时,之前的活动要执行onPause(),关闭对话框时,这个活动执行onResume().