Activity 生命周期

Android Activity 生命周期:OnPause / OnStop / OnRestart / OnDestroy

OnPause

当应用退到后台时触发。
适合做:持久化保存数据、释放大对象、释放蓝牙等硬件资源。

注意:OnPause只是失去焦点,界面还可能部分可见(弹出对话框),不能在这里做重量级销毁操作

protected override void OnPause()
{
    base.OnPause();
    // 保存数据、释放硬件
}Code language: JavaScript (javascript)

OnStop

Activity 已经完全对用户不可见时调用。

  • 按返回键跳转、打开新的全屏页面盖住当前页面。
  • 典型用途:取消/停止后台服务,释放资源。
protected override void OnStop()
{
    base.OnStop();
    // 停止服务、释放资源
}Code language: JavaScript (javascript)

OnRestart

Activity 处于停止状态,重新被激活时执行。
示例:从新闻详情页按返回键回到新闻列表页,详情页销毁,列表页触发OnRestart
执行顺序:OnRestart()OnStart()
触发该方法代表 Activity 实例对象还存活,没有被销毁

protected override void OnRestart()
{
    base.OnRestart();
}Code language: JavaScript (javascript)

OnDestroy

Activity 生命周期最后回调,销毁之后不会再执行任何生命周期方法。
和 OnStop 类似,主要用来做最终资源释放。

  • OnStop:页面看不见,但Activity对象还在内存,后续可OnRestart恢复
  • OnDestroy:对象即将销毁回收,彻底结束
protected override void OnDestroy()
{
    base.OnDestroy();
    // 最终释放资源,注销广播、解绑
}Code language: JavaScript (javascript)

总结

打开页面:OnCreateOnStartOnResume
压入后台:OnPauseOnStop
从后台切回:OnRestartOnStartOnResume
关闭销毁:OnPauseOnStopOnDestroy

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注