Activity的所有生命周期函数包括
时间: 2024-01-06 13:04:42 浏览: 36
Activity的所有生命周期函数包括:
1. onCreate():当Activity被创建时调用,用于完成界面的初始化和数据的加载。
2. onStart():当Activity即将变为可见状态时调用,可以进行一些准备工作。
3. onResume():当Activity变为可见状态时调用,此时用户可以与界面进行交互,一般用来启动动画或者音乐等。
4. onPause():当Activity失去焦点时调用,一般用于保存数据或者暂停动画或者音乐等。
5. onStop():当Activity完全不可见时调用,一般用于释放资源或者保存数据。
6. onRestart():当Activity重新启动时调用,一般用于恢复数据或者重新加载数据。
7. onDestroy():当Activity被销毁时调用,用于释放资源和清理内存。
8. onSaveInstanceState():当Activity被暂停或者销毁时调用,用于保存Activity的状态,以便在重新创建时恢复。
9. onRestoreInstanceState():当Activity重新创建时调用,用于恢复之前保存的状态。
注意:在Android 3.0及以上版本,当用户按下Home键或者切换到其他应用时,会先调用onPause(),再调用onStop();当用户再次回到该Activity时,会先调用onRestart(),再调用onStart()和onResume()。
相关问题
android activity生命周期
Android Activity 的生命周期包括以下几个状态:
1. onCreate:创建 Activity。
2. onStart:Activity 可见,但不可交互。
3. onResume:Activity 可见且可交互。
4. onPause:Activity 不可见但仍在后台运行。
5. onStop:Activity 不可见且不在后台运行。
6. onDestroy:销毁 Activity。
在不同生命周期状态之间转换时,系统会调用相应的回调函数。开发者可以在这些回调函数中执行相应的操作。
1、Activity有哪7+2个生命周期函数?简述各个回调函数的作用,并使用程序来解释Activity的9个生命周期函数的调用顺序。
Activity的7个生命周期函数包括:
1. onCreate():Activity被创建时调用。在这个方法中,我们可以进行UI界面的初始化、数据的加载等操作。
2. onStart():Activity可见但未在前台时调用。在这个方法中,我们可以进行一些初始化操作,比如注册广播接收器等。
3. onResume():Activity获得焦点时调用。在这个方法中,我们可以进行一些数据的刷新、动画效果的启动等操作。
4. onPause():Activity失去焦点但未被销毁时调用。在这个方法中,我们可以进行一些数据的保存、动画效果的停止等操作。
5. onStop():Activity完全不可见时调用。在这个方法中,我们可以进行一些资源的释放、服务的停止等操作。
6. onDestroy():Activity被销毁时调用。在这个方法中,我们可以进行一些资源的释放、服务的停止等操作。
7. onRestart():Activity重新启动时调用。在这个方法中,我们可以进行一些数据的刷新等操作。
另外,Android 10及以上版本还增加了两个生命周期函数:
8. onAttachContext():Activity附着到上下文时调用。
9. onAttachBaseContext():Activity附着到基础上下文时调用。
下面是Activity生命周期函数调用顺序的示例程序:
```
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 onDestroy() {
super.onDestroy();
Log.d(TAG, "onDestroy");
}
@Override
protected void onRestart() {
super.onRestart();
Log.d(TAG, "onRestart");
}
}
```
在运行上述程序时,我们可以根据打印的日志信息来观察Activity生命周期函数的调用顺序。例如,当我们启动该Activity时,可以看到如下的日志输出:
```
D/MainActivity: onCreate
D/MainActivity: onStart
D/MainActivity: onResume
```
当我们按下Home键将该Activity切换到后台时,可以看到如下的日志输出:
```
D/MainActivity: onPause
D/MainActivity: onStop
```
当我们再次回到该Activity时,可以看到如下的日志输出:
```
D/MainActivity: onRestart
D/MainActivity: onStart
D/MainActivity: onResume
```
当我们按下返回键退出该Activity时,可以看到如下的日志输出:
```
D/MainActivity: onPause
D/MainActivity: onStop
D/MainActivity: onDestroy
```
由此可见,Activity的生命周期函数调用顺序是比较固定的,我们可以根据这个顺序来进行相应的操作。