Activity的生命周期方法
在Android中,Activity是一个应用程序组件,四大组件之一。它提供了用户与应用程序之间交互的界面。每个Activity都是用户在屏幕上可进行交互的单一界面。 例如,一个电子邮件应用可能有一个Activity显示新邮件的列表,另一个Activity用于撰写邮件,另一个Activity用于阅读邮件等。
Activity有一些重要的生命周期方法,包括:
1. onCreate(): 当Activity被创建时,系统会调用这个方法。这是应用程序进行初始化的地方,比如创建用户界面,绑定数据到列表,实例化类等。
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 其他初始化代码
}
2. onStart(): 当Activity对用户可见时,系统会调用这个方法。这通常是绑定可以影响UI的数据的好地方。
3. onResume(): 当Activity处于前台并且可以和用户交互时,系统会调用这个方法。这是继续动画和音视频播放的好地方。
4. onPause(): 当系统准备去启动或者恢复另一个Activity时,系统会调用这个方法。应用程序应该在这个方法中保存所有的非持久化数据,停止动画和其他可能消耗CPU的东西等。
5. onStop(): 当Activity对用户不可见时,系统会调用这个方法。如果Activity被销毁或者被其他Activity完全覆盖,那么这个方法就会被调用。
6. onDestroy(): 在Activity被销毁前,系统会调用这个方法。这通常发生在Activity不再需要,或者由于系统需要回收资源而被销毁的情况。
7.onRestart(): onRestart()
是一个由 Android 系统提供的 Activity 生命周期回调方法。当 Activity 从停止(Stopped)状态重新启动并返回至活动状态(Started)时,就会调用此方法。
以下是 onRestart()
方法的一些常见用途:
- 当 Activity 重新获得焦点时更新用户界面:例如,可能在用户离开你的 Activity 后,其他应用程序更改了一些你的应用程序依赖的数据。在这种情况下,你可能需要在
onRestart()
方法中更新这些数据。 - 重新初始化释放的资源:在
onStop()
方法中,你可能已经释放了一些资源,例如动画、GPS、或者重力传感器等。当你的 Activity 重新启动时,你需要在onRestart()
方法中重新获取这些资源。
一般地,onRestart()
方法的调用发生在 onStart() 方法之前,也就是在 Activity 从停止状态(Stopped)回到开始状态(Started)的过程中。
请注意,onRestart()
不一定总会被调用。在某些情况下,例如当你的 Activity 是由于用户按下 “Back” 键而停止的,Activity 会直接被销毁,而不会调用onRestart()
方法。
方法间的对应关系如下:
onCreate()/onDestroy() - 创建/销毁
onStart()/onStop() - 可见/不可见
onResume()/onPause() - 前台/后台
每个Activity都需要在AndroidManifest.xml文件中进行注册,系统才能识别并启动这个Activity。