android activity的生命周期

本文概述

Android Activity生命周期由android.app.Activity类的7种方法控制。 android Activity是ContextThemeWrapper类的子类。

活动是android中的单个屏幕。它就像Java的窗口或框架。

在活动的帮助下,你可以将所有UI组件或小部件放在一个屏幕中。

Activity的7个生命周期方法描述了Activity在不同状态下的行为。

Android Activity生命周期方法

让我们看看android活动的7种生命周期方法。

方法 描述
onCreate 在首次创建活动时调用。
onStart 当活动对用户可见时调用。
onResume 当活动开始与用户互动时调用。
onPause 在用户看不到活动时调用。
onStop 当活动不再对用户可见时调用。
onRestart 活动停止后, 开始之前调用。
onDestroy 在活动销毁之前调用。
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="example.srcmini02.com.activitylifecycle.MainActivity">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Hello World!"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

</android.support.constraint.ConstraintLayout>

Android活动生命周期示例

它提供了有关活动生命周期方法调用的详细信息。在此示例中,我们在logcat上显示内容。

package example.srcmini02.com.activitylifecycle;

import android.app.Activity;
import android.os.Bundle;
import android.util.Log;

public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Log.d("lifecycle", "onCreate invoked");
    }
    @Override
    protected void onStart() {
        super.onStart();
        Log.d("lifecycle", "onStart invoked");
    }
    @Override
    protected void onResume() {
        super.onResume();
        Log.d("lifecycle", "onResume invoked");
    }
    @Override
    protected void onPause() {
        super.onPause();
        Log.d("lifecycle", "onPause invoked");
    }
    @Override
    protected void onStop() {
        super.onStop();
        Log.d("lifecycle", "onStop invoked");
    }
    @Override
    protected void onRestart() {
        super.onRestart();
        Log.d("lifecycle", "onRestart invoked");
    }
    @Override
    protected void onDestroy() {
        super.onDestroy();
        Log.d("lifecycle", "onDestroy invoked");
    }
}

输出:

你不会在仿真器或设备上看到任何输出。你需要打开logcat。

现在在logcat上看到:调用了onCreate,onStart和onResume方法。

现在点击HOME按钮。你将看到onPause方法被调用。

一段时间后,你将看到onStop方法被调用。

现在在模拟器上查看。在家里。现在,单击中心按钮以再次启动该应用程序。

现在,单击lifecycleactivity图标。

现在在logcat上看到:调用了onRestart,onStart和onResume方法。

如果看到模拟器,则将再次启动应用程序。

现在单击后退按钮。现在你将看到onPause方法被调用。

一段时间后,你将看到onStop和onDestroy方法被调用。

在整个活动生命周期中,仅调用一次onCreate()和onDestroy()方法。

微信公众号
手机浏览(小程序)
0
分享到:
没有账号? 忘记密码?