您的位置:

Android Activity生命周期及应用场景

在Android开发中,Activity是应用程序UI界面的载体。当用户点击应用程序的主图标或从其他应用程序跳转至该应用时,会启动一个Activity。在这篇文章中,我们将详细讨论Android Activity的生命周期及其应用场景。

一、Activity生命周期

Activity生命周期由以下步骤组成:

1. 创建阶段(onCreate())

Activity开始创建时被调用。通常在此阶段完成界面元素的初始化工作,如设置布局(layout)、获取资源(objects)等等。以下是一个示例:

public class MainActivity extends AppCompatActivity {
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        // ... 其他初始化代码 ...
    }
}

2. 可见阶段(onStart()和onResume())

在创建完成后,Activity被从后台移至前景并可见时,会调用onStart()和onResume()。在这个阶段,可以触发耗时操作或开始执行某些任务。

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onStart() {
        super.onStart();
        // 此处可进行一些耗时操作、数据刷新等
    }

    @Override
    protected void onResume() {
        super.onResume();
        // 此处可开始执行某些任务
    }
}

3. 停止阶段(onPause()和onStop())

当Activity失去焦点或被其他Activity遮盖时,会执行onPause()和onStop()方法。在这个阶段一些资源可以被释放或一些操作可以被撤销。

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onPause() {
        super.onPause();
        // 此处可释放一些资源、取消一些操作等
    }

    @Override
    protected void onStop() {
        super.onStop();
        // 此处可进行一些长时间操作的停止或撤销
    }
}

4. 销毁阶段(onDestroy())

当Activity被销毁时会执行onDestroy()方法。一旦Activity被销毁,其内存和其他资源都会被回收清理。

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onDestroy() {
        super.onDestroy();
        // 在此销毁一些资源
    }
}

二、生命周期应用场景

1. 保存数据

Activity的生命周期方法可以用于保存和恢复Activity的状态信息。下面代码演示如何在Activity被暂停或停止时保存数据,在重新启动Activity时恢复数据:

public class MainActivity extends AppCompatActivity {

    private String mText;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        if(savedInstanceState != null) {
            mText = savedInstanceState.getString("text");
        }
    }

    @Override
    protected void onSaveInstanceState(Bundle outState) {
        super.onSaveInstanceState(outState);
        outState.putString("text", mText);
    }

    @Override
    protected void onStop() {
        super.onStop();
        mText = "Hello World";
    }
}

2. 进入全屏模式

Activity的生命周期方法也可以用于隐藏和显示状态栏。下面代码演示如何在进入全屏模式时隐藏状态栏,在退出全屏模式时显示状态栏:

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onResume() {
        super.onResume();
        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
                WindowManager.LayoutParams.FLAG_FULLSCREEN);
    }

    @Override
    protected void onPause() {
        super.onPause();
        getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
    }
}

3. 后台任务

Activity的可见阶段可以用于后台任务的开始和停止。下面代码演示如何在Activity进入可见阶段时开始执行一个后台任务,在Activity进入不可见阶段时停止后台任务:

public class MainActivity extends AppCompatActivity {

    private MyTask mTask;

    @Override
    protected void onResume() {
        super.onResume();
        mTask = new MyTask();
        mTask.execute();
    }

    @Override
    protected void onPause() {
        super.onPause();
        mTask.cancel(true);
    }

    private class MyTask extends AsyncTask
    {

        @Override
        protected Void doInBackground(Void... voids) {
            // 执行后台任务的代码
            return null;
        }
    }
}
   

三、结论

本篇文章详细讨论了Android Activity的生命周期及其应用场景。了解生命周期的基本流程并熟悉其应用场景,将有助于您更深入地理解Android开发。

Android Activity生命周期及应用场景

2023-05-20
Android Activity 生命周期:理解Androi

Android应用的核心是Activity,它是用户与应用程序交互的窗口。一个Activity可以简单地理解为用户与应用的一个窗口,因此,Android中的Activity生命周期管理也非常重要,它可

2023-12-08
Android应用生命周期详解

2023-05-14
Android 如何使用 configChanges 优化

2023-05-14
安卓Activity生命周期详解

2023-05-19
Android开发中必备的生命周期理解

2023-05-14
Android横竖屏切换的生命周期管理

Android设备支持横向和纵向两种屏幕方向,应用程序在不同的方向下可能会有不同的布局和展示效果。然而,当用户旋转设备屏幕时,应用程序并不一定会正确地重新加载并展示内容,这可能会导致崩溃或不完整的界面

2023-12-08
Flutter生命周期

2023-05-18
Android横竖屏切换生命周期详解

2023-05-20
掌握Android Fragment的生命周期

2023-05-14
Android Application生命周期详解

2023-05-21
Fragment生命周期详解

2023-05-18
Android Activity框架详解

2023-05-22
Android Activity启动流程解析

在Android应用开发过程中,Activity是重要的组件之一。本文将为大家详细解析Android Activity启动流程,帮助读者深入理解Activity的启动过程。 一、Activity启动方

2023-12-08
Android Activity启动流程

2023-05-24
Android NFC应用场景及开发实战

2023-05-14
Android四大组件-深入剖析Activity、Servi

2023-05-14
Java Activity深度解析

2023-05-16
Android Application生命周期

2023-05-16
Android四大组件: Activity、Service、

一、Activity Activity是Android应用程序的基本组件之一,它代表了应用收到用户交互时呈现的界面。Activity通常会与其他Activity交互,并且可以包含其他组件,例如Frag

2023-12-08