跳转到主内容
websoft网络软件专家 - 深耕网络技术,打造实用软件!

Android开发:Activity的生命周期详解,你真的懂了吗?

大家好,我是陈景序,今天我们来聊聊Android开发中Activity的生命周期,这个话题可是Android开发中的重中之重哦!

首先,Activity是由Activity stack管理的,每次启动一个新的Activity,它就会成为stack的top位置,成为当前运行的Activity。而之前的Activity并不会被销毁,只是退到了stack的下面。当需要调用这个Activity时,它就会回到stack的top位置。

Activity的四种基本状态

Activity有四个基本状态,分别是:

  • active / running 状态:当Activity处于当前屏幕时;
  • paused 状态:当Activity失去焦点但对用户依然可见时;
  • stopped 状态:当Activity完全被另一个Activity覆盖时;
  • 当Activity是paused或者stopped状态时,系统可以通过要求它结束或直接杀死它的进程来将它驱出内存。

Activity的生命周期

Activity的生命周期可以通过以下几个关键的生命周期循环来理解:

  • 一个activity完整的生命周期:从第一次调用onCreate开始,直至调用onDestroy为止。
  • 一个activity的可视生命周期:从onStart调用开始直到相应的onStop调用。
  • 一个activity的前台生命周期:从onResume调用起,至相应的onPause调用为止。

这些生命周期方法都是可以重载的,以便在状态改变时进行合适的工作。

下面是一个Activity的生命周期图,可以帮助你更好地理解:

Activity生命周期图

Activity的调用顺序

以下是一个Activity的调用顺序示例:

  • 点击按钮去启动Activity1,就会看到onCreate -> onStart -> onResume的调用顺序。
  • 点击back返回键后,会看到onPause -> onStop -> onDestory的调用顺序。
  • 再次启动Activity1,和一般启动的顺序是一样的。
  • 从Activity 1启动Activity 2,Activity 1会调用onPause,Activity 2会调用onCreate -> onStart -> onResume。
  • 点击Home键回到桌面,Activity 2会调用onPause -> onStop。
  • 回到原来的程序,Activity 2没有被销毁的情况下,会调用onRestart -> onStart -> onResume。
  • 点击back返回键或Activity2.finish(),返回到Activity1,这里的情况是Activity1还没被销毁。
  • 点击back返回键后,Activity1会调用onPause -> onStop -> onDestory。

保存Activity状态

保存Activity状态,是为了方便用户重新打开程序时,能够回到上次离开时的状态。这里涉及到的方法有onSaveInstanceState和onRestoreInstanceState。

要注意的是,onSaveInstanceState和onRestoreInstanceState并不是生命周期方法,它们并不是总会被调用。你应该只用它们来为Activity保存一些临时的状态,而不能用来保存持久性数据。

好了,今天的内容就到这里,希望对大家有所帮助。我是陈景序,关注「websoft网络软件专家」(www.phpwebsoft.com),了解更多技术干货!

相关文章