Android工具箱之Activity生命周期

499 查看

这是一个系列,我们将其命名为工具箱,如果你还没有看之前的文章:

Android工具箱之Context解析

Android工具箱之文件目录

Android工具箱之组织你的代码文件

Android工具箱之理解app资源文件

Android工具箱之迁移到AppCompat

Android工具箱之Android 6.0权限管理

Activity的生命周期

背景

用户打开app,浏览页面,Android机器在栈内维护activitys。当前呈现给用户的activity总是在栈顶。

activity的生命周期通常有这四个:

  • Running activity处于栈顶,正在运行

  • Paused activity仍然可见,但是不和用户交互

  • Stopped activity不再可见

  • Killed activity被系统杀死或者主动调用了onfinish()方法。

activity生命周期

我们可以看一看这张图:

注意:onresume和onpause,onPause和onStop的区别。在onResume方法中,经常会写一些刷新数据或者其他非耗时操作,同样onPause也是在activity结束之前,做相关的保存数据工作。onPause和onStop的区别,根据上图就可知,onPause的时候,activity仍然可见,但onStop的时候,activity完全不可见。那么在什么时候会执行onPause,不执行onStop呢,答案是在展现Dialog或者其他浮层的时候。

调用父类方法

你应该在写oncreate方法之前调用父类方法,这同样也是Java规范。在onPause方法之后调用父类方法。原则是初始化之前是先调用父类方法,结束之前是后调用父类方法。

public void onCreate() {
   super.onCreate();
   // do work after super class function
   // setContentView(R.layout.main);
}

public void onPause() {
   // do work here first before super class function
   // LocalBroadcastManager.getInstance(this).unregisterReceiver(mMessageReceiver);
   super.onPause();
}