最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

Activity概述

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

Activity生命周期

在這里插入圖片描述

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

在這里插入圖片描述

一、啟動activity,然后按返回鍵退出。
onCreate()->onStart()->onResume()
onPause()->onStop()->onDestory()
二、啟動activity,按Home鍵顯示桌面,再點程序圖標進入應(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(默認standard)、singleTop、singleTask、singleInstance

啟動模式的設(shè)置

清單文件中在活動聲明中加入launchMode屬性 默認為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(默認standard)

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

在這里插入圖片描述

singleTop

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

在這里插入圖片描述

singleTask

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

在這里插入圖片描述

singleInstance

每一個Activity都是唯一的 當Activity存在不會新建新的Activity

在這里插入圖片描述

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

相關(guān)文章

  • android studio實現(xiàn)簡單的計算器(無bug)

    android studio實現(xiàn)簡單的計算器(無bug)

    這篇文章主要為大家詳細介紹了android studio實現(xiàn)簡單計算器,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-08-08
  • Android筆記之:App調(diào)試的幾個命令的實踐與分析

    Android筆記之:App調(diào)試的幾個命令的實踐與分析

    本篇文章介紹了,在Android中:App調(diào)試的幾個命令的實踐與分析。需要的朋友參考下
    2013-04-04
  • Android 獲取手機聯(lián)系人實例代碼詳解

    Android 獲取手機聯(lián)系人實例代碼詳解

    最近做了個項目,其中有項目需求是這樣的,需要獲取手機聯(lián)系人,下面小編把代碼分享給大家,供大家參考
    2015-12-12
  • Android自定義viewgroup快速滑動(4)

    Android自定義viewgroup快速滑動(4)

    這篇文章主要為大家詳細介紹了Android自定義viewgroup快速滑動的相關(guān)資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-12-12
  • Android獲取設(shè)備傳感器的方法

    Android獲取設(shè)備傳感器的方法

    這篇文章主要為大家詳細介紹了Android獲取設(shè)備傳感器的方法,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-09-09
  • Android制作漂亮自適布局鍵盤的方法

    Android制作漂亮自適布局鍵盤的方法

    最近做了個自定義鍵盤,但面對不同分辨率的機型其中數(shù)字鍵盤不能根據(jù)界面大小自已鋪滿,但又不能每種機型都做一套吧,所以要做成自適應(yīng),那這里主講思路,感興趣的朋友一起學習吧
    2015-12-12
  • Android應(yīng)用自動跳轉(zhuǎn)到應(yīng)用市場詳情頁面的方法

    Android應(yīng)用自動跳轉(zhuǎn)到應(yīng)用市場詳情頁面的方法

    最近在工作中遇到一個需求,推廣部門要求實現(xiàn)應(yīng)用自動跳轉(zhuǎn)到應(yīng)用市場詳情頁面,通過查找一些資料,實現(xiàn)出來了,覺得有必要整理下方便以后或者有需要的朋友們參考借鑒,下面來一起詳細看看Android應(yīng)用自動跳轉(zhuǎn)到應(yīng)用市場詳情頁面的方法吧。
    2016-12-12
  • OpenGL Shader實例分析(2)繪制心臟跳動效果

    OpenGL Shader實例分析(2)繪制心臟跳動效果

    這篇文章主要為大家詳細介紹了OpenGL Shader實例分析第2篇,繪制心臟跳動效果,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-02-02
  • Android監(jiān)聽home鍵的方法詳解

    Android監(jiān)聽home鍵的方法詳解

    這篇文章主要介紹了Android監(jiān)聽home鍵的方法,結(jié)合實例形式較為詳細的分析了Android實現(xiàn)監(jiān)聽home鍵的原理與具體實現(xiàn)技巧,需要的朋友可以參考下
    2016-02-02
  • android?原生安全音量配置邏輯設(shè)計詳解

    android?原生安全音量配置邏輯設(shè)計詳解

    這篇文章主要為大家介紹了android?原生安全音量配置邏輯設(shè)計詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-01-01

最新評論

抚顺市| 南皮县| 盐源县| 常山县| 武城县| 济阳县| 邹平县| 湘阴县| 沂水县| 游戏| 三亚市| 即墨市| 辽宁省| 乐至县| 明光市| 铁力市| 华池县| 胶南市| 玉溪市| 定兴县| 宣汉县| 肃北| 图们市| 隆林| 衡阳市| 涿鹿县| 龙井市| 麻城市| 大方县| 墨竹工卡县| 乌恰县| 南汇区| 万安县| 河池市| 济源市| 林州市| 即墨市| 高唐县| 绥中县| 大关县| 确山县|