欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Android Activity的生命周期與啟動模式全面解讀

 更新時間:2021年10月12日 10:55:43   作者:青素i  
雖然說我們天天都在使用Activity,但是你真的對Activity的生命機(jī)制完全了解了嗎?Activity的生命周期方法只有七個,但是其實(shí)那只是默認(rèn)的情況。也就是說在其他情況下,Activity的生命周期可能不會是按照我們以前所知道的流程,這就要說到Activity的啟動模式

Activity概述

• Activity(活動)是Android應(yīng)用程序中最基本的組成單位。
• Activity主要負(fù)責(zé)創(chuàng)建顯示窗口,一個Activity對象通常就代表了一個單獨(dú)的屏幕。
• Activity是用戶唯一可以看得到的組件,用來與用戶進(jìn)行交互的。
• Activity是通過一個Activity棧來進(jìn)行管理,當(dāng)前顯示的Activity被放到棧頂。

Activity生命周期

在這里插入圖片描述

生命周期的調(diào)用順序

在這里插入圖片描述

一、啟動activity,然后按返回鍵退出。
onCreate()->onStart()->onResume()
onPause()->onStop()->onDestory()
二、啟動activity,按Home鍵顯示桌面,再點(diǎn)程序圖標(biāo)進(jìn)入應(yīng)用程序。
onCreate()->onStart()->onResume()
onPause()->onStop()
onRestart()->onStart()->onResume()
三、啟動activityA,再啟動activityB
AonCreate()->AonStart()->AonResume()
AonPause()
BonCreate()->BonStart()->BonResume()

演示

package com.qingsu.yingguday06;

import androidx.appcompat.app.AppCompatActivity;

import android.content.ComponentName;
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 implements View.OnClickListener {

    private  Button mBtIntent,mBtIntentOne,mBtIntentTwo,mBtIntentThree;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        Log.d("TAG","onCreate");
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        initView();
        mBtIntent.setOnClickListener(this);
    }


    private  void initView(){
        mBtIntent = findViewById(R.id.bt_intentmain);
    }
    @Override
    protected void onStart() {
        Log.d("TAG","onStart");
        super.onStart();
    }

    @Override
    protected void onResume() {
        Log.d("TAG","onResume");
        super.onResume();
    }

    @Override
    protected void onPause() {
        Log.d("TAG","onPause");
        super.onPause();
    }

    @Override
    protected void onStop() {
        Log.d("TAG","onStop");
        super.onStop();
    }

    @Override
    protected void onRestart() {
        Log.d("TAG","onRestart");
        super.onRestart();
    }

    @Override
    protected void onDestroy() {
        Log.d("TAG","onDestroy");
        super.onDestroy();
    }

    @Override
    public void onClick(View v) {
        switch (v.getId()){
            case R.id.bt_intentmain:
                startActivity(intent);;
                break;
            default:
                break;
        }
    }

    
}
package com.qingsu.yingguday06;

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 HomeActivity extends AppCompatActivity {

    Button mBtHome,mBtIntentB;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        Log.d("TAG","BonCreate");
        setContentView(R.layout.activity_home);
        setTitle("頁面B");
        mBtHome = findViewById(R.id.bt_intenthome);
        mBtIntentB = findViewById(R.id.bt_intentB);
        mBtHome.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent = new Intent(HomeActivity.this,MainActivity.class);
                startActivity(intent);
            }
        });
        mBtIntentB.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent = new Intent(HomeActivity.this,HomeActivity.class);
                startActivity(intent);
            }
        });
    }
    @Override
    protected void onStart() {
        Log.d("TAG","BonStart");
        super.onStart();
    }

    @Override
    protected void onResume() {
        Log.d("TAG","BonResume");
        super.onResume();
    }

    @Override
    protected void onPause() {
        Log.d("TAG","BonPause");
        super.onPause();
    }

    @Override
    protected void onStop() {
        Log.d("TAG","BonStop");
        super.onStop();
    }

    @Override
    protected void onRestart() {
        Log.d("TAG","BonRestart");
        super.onRestart();
    }

    @Override
    protected void onDestroy() {
        Log.d("TAG","onDestroy");
        super.onDestroy();
    }

}

Activity的啟動模式

standard(默認(rèn)standard)、singleTop、singleTask、singleInstance

啟動模式的設(shè)置

清單文件中在活動聲明中加入launchMode屬性 默認(rèn)為standard方式

 android:launchMode="singleTask"
     <activity android:name=".MainActivity"
            android:launchMode="singleTask"
            >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

standard(默認(rèn)standard)

一直入棧 一直創(chuàng)建新的Activity

在這里插入圖片描述

singleTop

當(dāng)前頁面中創(chuàng)建當(dāng)前頁面不會新創(chuàng)建Activity

在這里插入圖片描述

singleTask

當(dāng)Activity存在則會將其置頂,Activity上面的棧則會被彈出!即Activity上面的Activity會銷毀!

在這里插入圖片描述

singleInstance

每一個Activity都是唯一的 當(dāng)Activity存在不會新建新的Activity

在這里插入圖片描述

到此這篇關(guān)于Android Activity的生命周期與啟動模式全面解讀的文章就介紹到這了,更多相關(guān)Android Activity 啟動模式內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Android this與Activity.this的區(qū)別

    Android this與Activity.this的區(qū)別

    這篇文章主要介紹了 Android this與Activity.this的區(qū)別的相關(guān)資料,需要的朋友可以參考下
    2016-09-09
  • 如何通過Battery Historian分析Android APP耗電情況

    如何通過Battery Historian分析Android APP耗電情況

    Android 從兩個層面統(tǒng)計電量的消耗,分別為軟件排行榜及硬件排行榜。它們各有自己的耗電榜單,軟件排行榜為機(jī)器中每個 App 的耗電榜單,硬件排行榜則為各個硬件的耗電榜單。這兩個排行榜的統(tǒng)計是互為獨(dú)立,互不干擾的
    2021-06-06
  • Android實(shí)現(xiàn)文字下方加橫線

    Android實(shí)現(xiàn)文字下方加橫線

    這篇文章主要為大家詳細(xì)介紹了Android實(shí)現(xiàn)文字下方加橫線,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-07-07
  • android studio的使用sdk manager的方法

    android studio的使用sdk manager的方法

    這篇文章主要介紹了android studio的使用sdk manager的方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-11-11
  • Android利用ScaleTransition實(shí)現(xiàn)吹氣球動畫

    Android利用ScaleTransition實(shí)現(xiàn)吹氣球動畫

    這篇文章主要為大家介紹了如何將利用ScaleTransition實(shí)現(xiàn)一個吹氣球的動畫,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起了解一下
    2022-04-04
  • Android自定義跑馬燈文字效果

    Android自定義跑馬燈文字效果

    這篇文章主要為大家詳細(xì)介紹了Android自定義跑馬燈文字效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-03-03
  • Android編程調(diào)用紅外線遙控功能示例

    Android編程調(diào)用紅外線遙控功能示例

    這篇文章主要介紹了Android編程調(diào)用紅外線遙控功能,結(jié)合實(shí)例形式分析了Android紅外線功能的相關(guān)組件調(diào)用與布局操作實(shí)現(xiàn)技巧,需要的朋友可以參考下
    2017-08-08
  • Android onActivityResult和setResult方法詳解及使用

    Android onActivityResult和setResult方法詳解及使用

    這篇文章主要介紹了Android onActivityResult和setResult方法詳解及使用的相關(guān)資料,這里提供實(shí)例,幫助大家學(xué)習(xí)理解,需要的朋友可以參考下
    2016-12-12
  • Android 性能優(yōu)化系列之bitmap圖片優(yōu)化

    Android 性能優(yōu)化系列之bitmap圖片優(yōu)化

    在日常開發(fā)的APP,大部分時候需要想用戶展示圖片信息,圖片最終對應(yīng)Android中的Bitmap對象。而對于APP端來說Bitmap又是一個比較麻煩的問題,主要表現(xiàn)在Bitmap是非常占用內(nèi)存的對象,處理不當(dāng)將導(dǎo)致APP運(yùn)行卡頓甚至出現(xiàn)OOM
    2021-11-11
  • Android中ShapeableImageView使用實(shí)例詳解(告別shape、三方庫)

    Android中ShapeableImageView使用實(shí)例詳解(告別shape、三方庫)

    之前Google推送了文章,Android?Material組件1.2.0里面就有ShapeableImageView,不用像以前再寫shape,下面這篇文章主要給大家介紹了關(guān)于Android中ShapeableImageView使用的相關(guān)資料,需要的朋友可以參考下
    2022-09-09

最新評論