下面是对“Android入门教程之组件Activity的生命周期详解”教程的完整攻略:
一、什么是组件Activity?
- 组件Activity是Android应用程序的组成部分,是用户与应用程序进行交互的窗口。
二、Activity的生命周期
从整个流程来看,Activity的生命周期可以分为四种状态:运行状态、暂停状态、停止状态、销毁状态。这四种状态对应着Activity的完整生命周期。
1. 运行状态 - Running
当一个Activity被启动后,它进入了运行状态。这个状态下,Activity处于前台,占有着用户焦点。
处于这个状态的Activity,可以执行如下任务:
- 跟用户互动(如展现UI,接收点击事件等)。
- 处理系统发来的消息(如屏幕旋转,按键事件等)。
2. 暂停状态 - Paused
当用户离开一个Activity时,它会进入暂停状态。此时Activity仍然可见,但不再是用户当前的活动页面。
处于这个状态下的Activity,可以执行如下任务:
- 暂停UI和动画效果。
- 停止所有的后台操作。
- 维护和更新UI状态和数据。
3. 停止状态 - Stopped
当一个Activity完全不可见的时候,它进入了停止状态。这个状态下,Activity可能被后台其他进程终止,需要释放与Activity相关联的资源。
处于这个状态下的Activity,可以执行如下任务:
- 释放所有的资源。
- 停止所有的后台操作。
4. 销毁状态 - Destroyed
当系统销毁了一个Activity时,它进入了销毁状态。此时Activity的所有资源都被释放掉了,并且在之后将无法重用。
处于这个状态下的Activity,需要执行如下任务:
- 释放所有内存资源。
- 关闭所有的视图和资源。
- 参与Activity是否重建的决策。
三、生命周期回调方法
Activity生命周期中,系统会回调一些生命周期回调方法,开发者可以在这些回调方法中编写自己的逻辑。
总的来说,Activity生命周期回调方法可以分为三类:
1. 创建和销毁相关方法
在Activity的开启或销毁时,系统会回调如下方法:
- onCreate:在Activity第一次被创建时回调。此时适合完成一些初始化操作。
- onDestroy:在Activity被销毁时调用。
2. 可见和前后台切换相关方法
当Activity由不可见状态变成可见状态,或反之,系统会回调如下方法:
- onStart:在Activity变成可见时回调。
- onStop:当Activity变成不可见时回调。
3. 暂停和恢复相关方法
当Activity暂停和恢复时,系统会回调如下方法:
- onPause:当Activity失去焦点或进入不可见状态时回调。
- onResume:当Activity获得焦点时回调。
以上就是Activity生命周期的详解,下面通过两个示例来进一步说明Activity的生命周期。
示例一
下面的代码可以查看在Activity的生命周期中,不同状态下所调用方法的顺序:
public class MainActivity extends AppCompatActivity {
private static final String TAG = "Activity-LifeCycle";
@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()");
}
}
在上面的代码中,当Activity创建时,onCreate方法被调用。当Activity变成可见时,onStart和onResume方法被调用。当Activity失去焦点时,onPause方法被调用。当Activity变成不可见时,onStop方法被调用。最后,当Activity被销毁时,onDestroy方法被调用。
示例二
下面的代码演示了如何通过按下返回键来销毁一个Activity:
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
this.finish(); // 销毁当前Activity
return true; // 消耗返回键
}
return super.onKeyDown(keyCode, event);
}
}
在上面的代码中,我们在Activity中重载了onKeyDown方法,监听了按下返回键的事件,然后调用了该Activity的finish方法来销毁该Activity。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Android入门教程之组件Activity的生命周期详解 - Python技术站