onPause():
当第一个Activity通过Intent启动第二个Activity的时候,将调用第一个Activity的onPause()方法.然后调用第二个Activity的onCreate(),onStart(),onResume()方法,接着调用第一个Activity的onStop()方法如果Activity重新获得焦点则将调用onResume()方法;如果此Activity进入用户不可见状态,那么将调用onStop()方法
onStop():
当第一个Activity被第二个Activity完全覆盖,或者被销毁的时候回调用此方法如果此Activity还会与用户进行交互,将调用onRestart方法();如果此Activity还会与用户进行交互,将调用onRestart方法()被销毁,那么将调用onDestroy0方法.
onDestroy():
Activity被销毁之前调用此方法.或者是调用finish()方法结束Activity的时候用此方法.可以在此方法中进行收尾工作,比如释放资源等.
Activity 生命周期概述
Android Activity的生命周期是由一系列回调方法组成的,这些方法在特定的时间点被调用,帮助开发者管理Activity的状态。以下是Activity生命周期的主要回调方法及其调用顺序:
onCreate(Bundle savedInstanceState):
当Activity首次创建时调用。
如果Activity之前存在过,并且由于配置变化(如屏幕旋转)被销毁后重新创建,那么savedInstanceState 参数将包含Activity之前的实例状态。这里通常用于初始化 Activity 的 UI 组件和其他必要的设置。、
onStart():
当Activity变为可见时调用。
这意味着Activity对用户来说是可以看到的,但它可能还没有焦点。
onResume():
当Activity获取焦点并且准备好与用户交互时调用。
这时Activity完全可见并且处于活跃状态。
onPause():
当Activity失去焦点时调用,但不一定不可见。
比如,当一个对话框Activity出现时,当前Activity就会调用onPause()。
此时应该停止所有可能消耗资源的操作。
onStop():
当Activity对用户来说完全不可见时调用。
这可能是由于另一个Activity完全覆盖了当前Activity。
如果Activity以后还会与用户交互,那么会调用onRestart();如果Activity将被销毁,则调用onDestroy()。
onRestart():
当Activity由不可见变为可见时调用。
通常发生在Activity被另一个Activity(非透明主题)覆盖之后重新变为可见的情况。
onSaveInstanceState(Bundle outState):
在系统销毁Activity之前调用,通常是因为配置变化(如屏幕旋转)或内存不足。
允许你在Activity实例被销毁前保存其状态,以便在Activity重建时恢复。
onDestroy():
当Activity即将被永久移除时调用。
通常在这里进行清理操作,如释放分配给Activity的资源,注销广播监听器等。
生命周期流程图
以下是Activity生命周期的流程图:
深色版本
Activity未启动 -> onCreate() -> onStart() -> onResume()
|---不可见状态---| |---用户可交互状态---|
| | |
| <-> onPause() (部分可见)
| |
| <-> onStop() (完全不可见)
| |
V V
onDestroy() -> Activity销毁
示例场景
假设我们有两个Activity:ActivityA和ActivityB。当从ActivityA启动ActivityB时,会经历如下过程:
调用ActivityA的onPause()。
调用ActivityB的onCreate()、onStart()、onResume()。
调用ActivityA的onStop()。
如果ActivityB关闭或用户返回到ActivityA,则会经历相反的过程:
调用ActivityB的onPause()。
调用ActivityA的onRestart()、onStart()、onResume()。
如果ActivityB被销毁,则会调用onDestroy()。
理解这些回调方法及其调用顺序对于编写高效可靠的Android应用程序至关重要。


被折叠的 条评论
为什么被折叠?



