其他分享
首页 > 其他分享> > Android——生命周期的返回栈、活动状态、生存期

Android——生命周期的返回栈、活动状态、生存期

作者:互联网

1.返回栈

2.活动状态

每个活动在其生命周期中最多可能会有4种状态。

3.活动的生存期

Activity类中定义了7个回调方法,覆盖了活动生命周期的每一个环节:

以上7个方法中除了onRestart()方法,其他的都是两两对应,从而又可以将活动分为三种生存期:

生命周期图示:

官方:中文:

 

4.代码示例:

一个主活动,一个普通全屏活动,一个Dialog活动

主活动——有两个按钮,分别打开普通活动和Dialog活动,并且在所有的生命周期中都有相应信息打印:

package com.example.activitylifecycletest;

import androidx.appcompat.app.AppCompatActivity;

import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Log.d("onCreate============: ","onCreated");
//        打开NormalActivity
        Button startNormal=(Button) findViewById(R.id.start_normal_activity);
        final Button startDialog=(Button) findViewById(R.id.start_dialog_activity);
        startNormal.setOnClickListener(new View.OnClickListener() {
            @Override   // 打开NormalActivity
            public void onClick(View view) {
                Intent intent=new Intent(MainActivity.this,NormalActivity.class);
                startActivity(intent);
            }
        });
        startDialog.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Intent intent=new Intent(MainActivity.this,DialogActivity.class);
                startActivity(intent);
            }
        });
    }

//    所有生命周期方法
    @Override
    protected  void onStart(){
        super.onStart();
        Log.d("onStart============: ","onStart");
    }
    @Override
    protected void onResume(){
        super.onResume();
        Log.d("onResume============: ","onResume");
    }
    @Override
    protected void onPause(){
        super.onPause();
        Log.d("onPause============: ","onPause");
    }
    @Override
    protected void onStop(){
        super.onStop();
        Log.d("onStop============: ","onStop");
    }
    @Override
    protected void onDestroy(){
        super.onDestroy();
        Log.d("onDestroy============: ","onDestroy");
    }
    @Override
    protected void onRestart(){
        super.onRestart();
        Log.d("onRestart============: ","onRestart");
    }
}

 (1)首次启动应用程序:

 

入口活动一共执行了三个方法里的代码:

(2)打开第一个普通全屏活动

 

 入口活动又执行了:

(3)按下back键返回入口程序

 

入口程序又执行了

 

 (4)继续启动DialogActivity

 

 执行了:

(5)返回MainActivity

此时执行了:

(6)退出MainActivity

 

 

(5)活动被回收了怎么办

 

标签:状态,MainActivity,活动状态,生存期,onPause,onStop,Android,活动,方法
来源: https://www.cnblogs.com/codexlx/p/13566221.html