Activity有哪7+2个生命周期函数?简述各个回调函数的作用,并使用程序来解释Activity的9个生命周期函数的调用顺序
时间: 2024-03-20 16:44:40 浏览: 167
Activity 的 7 个生命周期函数分别是:onCreate()、onStart()、onResume()、onPause()、onStop()、onRestart()、onDestroy()。而另外两个生命周期函数是 onPostCreate() 和 onPostResume(),它们是对应 onCreate() 和 onResume() 的回调函数,用于处理一些初始化工作。下面简述各个回调函数的作用:
1. onCreate()
当 Activity 第一次被创建时,会调用该函数。在该函数中可以进行一些初始化操作,比如设置布局、绑定数据等。
2. onStart()
当 Activity 即将可见时,会调用该函数。在该函数中可以进行一些准备工作,比如注册广播接收器等。
3. onResume()
当 Activity 可见并可以与用户交互时,会调用该函数。在该函数中可以进行一些需要 UI 线程的操作,比如启动动画、播放音乐等。
4. onPause()
当 Activity 即将失去焦点时,会调用该函数。在该函数中应该停止一些需要 UI 线程的操作,比如停止动画、音乐等。
5. onStop()
当 Activity 被完全遮挡时,会调用该函数。在该函数中可以进行一些资源释放的操作,比如关闭数据库连接、释放内存等。
6. onRestart()
当 Activity 从停止状态重新启动时,会调用该函数。在该函数中可以进行一些初始化操作,比如恢复数据、重新注册广播接收器等。
7. onDestroy()
当 Activity 被销毁时,会调用该函数。在该函数中应该释放所有占用的资源,比如停止服务、关闭网络连接、释放内存等。
8. onPostCreate()
在 Activity 的 onCreate() 函数执行完毕后,会调用该函数。该函数通常用于进行一些初始化工作,比如设置标题、初始化控件等。
9. onPostResume()
在 Activity 的 onResume() 函数执行完毕后,会调用该函数。该函数通常用于进行一些初始化工作,比如启动动画、播放音乐等。
下面是一个简单的程序,演示了上述 9 个生命周期函数的调用顺序:
```java
public class MainActivity extends AppCompatActivity {
private static final String TAG = "MainActivity";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Log.d(TAG, "onCreate");
}
@Override
protected void onStart() {
super.onStart();
Log.d(TAG, "onStart");
}
@Override
protected void onResume() {
super.onResume();
Log.d(TAG, "onResume");
}
@Override
protected void onPause() {
super.onPause();
Log.d(TAG, "onPause");
}
@Override
protected void onStop() {
super.onStop();
Log.d(TAG, "onStop");
}
@Override
protected void onRestart() {
super.onRestart();
Log.d(TAG, "onRestart");
}
@Override
protected void onDestroy() {
super.onDestroy();
Log.d(TAG, "onDestroy");
}
@Override
protected void onPostCreate(Bundle savedInstanceState) {
super.onPostCreate(savedInstanceState);
Log.d(TAG, "onPostCreate");
}
@Override
protected void onPostResume() {
super.onPostResume();
Log.d(TAG, "onPostResume");
}
}
```
输出结果如下所示:
```
D/MainActivity: onCreate
D/MainActivity: onPostCreate
D/MainActivity: onStart
D/MainActivity: onResume
D/MainActivity: onPostResume
D/MainActivity: onPause
D/MainActivity: onStop
D/MainActivity: onRestart
D/MainActivity: onStart
D/MainActivity: onResume
```
从输出结果可以看出,Activity 的生命周期函数调用顺序为:onCreate() -> onPostCreate() -> onStart() -> onResume() -> onPostResume() -> onPause() -> onStop() -> onRestart() -> onStart() -> onResume()。
阅读全文