日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
Activity啟動(dòng)模式(launchMode)詳解

activity的啟動(dòng)模式有四種,standard、singleTop、singleTask、singleInstance.

創(chuàng)新互聯(lián)公司是一家集網(wǎng)站建設(shè),樂業(yè)企業(yè)網(wǎng)站建設(shè),樂業(yè)品牌網(wǎng)站建設(shè),網(wǎng)站定制,樂業(yè)網(wǎng)站建設(shè)報(bào)價(jià),網(wǎng)絡(luò)營銷,網(wǎng)絡(luò)優(yōu)化,樂業(yè)網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強(qiáng)企業(yè)競爭力??沙浞譂M足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時(shí)我們時(shí)刻保持專業(yè)、時(shí)尚、前沿,時(shí)刻以成就客戶成長自我,堅(jiān)持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實(shí)用型網(wǎng)站。

1.standard

standard是Activity默認(rèn)的啟動(dòng)模式,在不進(jìn)行顯示指定的情況下,所有活動(dòng)都會(huì)自動(dòng)使用這種啟動(dòng)模式。

每次啟動(dòng)都一個(gè)新的Activity位于棧頂。

Android:launchMode="standard",此時(shí)每次點(diǎn)擊按鈕都會(huì)創(chuàng)建新的Activity

現(xiàn)在,我們寫一個(gè)簡單的按鈕 ,實(shí)現(xiàn)跳轉(zhuǎn)Activity

 
 
 
 
  1. private Button button; 
  2.     @Override 
  3.     protected void onCreate(Bundle savedInstanceState) { 
  4.         super.onCreate(savedInstanceState); 
  5.         setContentView(R.layout.activity_main); 
  6.         Log.e("MainActivity",this.toString()); 
  7.         button = (Button)findViewById(R.id.button); 
  8.         button.setOnClickListener(new View.OnClickListener() { 
  9.             @Override 
  10.             public void onClick(View view) { 
  11.                 Intent intent = new Intent(MainActivity.this, MainActivity.class); 
  12.                 startActivity(intent); 
  13.             } 
  14.         }); 
  15.     }  

雖然跳轉(zhuǎn)的頁面相同,但是在Task中每點(diǎn)一次按鈕就會(huì)創(chuàng)建一個(gè)新的Activity

Activity創(chuàng)建日志 

啟動(dòng)示例圖

2.singleTop

當(dāng)Activity的啟動(dòng)模式為singleTop時(shí),當(dāng)啟動(dòng)的Activity已經(jīng)處于Activity棧頂時(shí),則直接使用。

android:launchMode="singleTop"

我們創(chuàng)建NextActivity,并且在MainActivity中添加button2

 
 
 
 
  1. private Button button1,button2; 
  2.  
  3.     @Override 
  4.     protected void onCreate(Bundle savedInstanceState) { 
  5.         super.onCreate(savedInstanceState); 
  6.         setContentView(R.layout.activity_main); 
  7.         Log.e("MainActivity", this.toString()); 
  8.         button1 = (Button) findViewById(R.id.button1); 
  9.         button2 = (Button) findViewById(R.id.button2); 
  10.         button1.setOnClickListener(this); 
  11.         button2.setOnClickListener(this); 
  12.  
  13.     } 
  14.  
  15.     @Override 
  16.     public void onClick(View view) { 
  17.         switch (view.getId()){ 
  18.             case R.id.button1: 
  19.                 Intent intent = new Intent(MainActivity.this, MainActivity.class); 
  20.                 startActivity(intent); 
  21.                 break; 
  22.             case R.id.button2: 
  23.                 Intent intent2 = new Intent(this, NextActivity.class); 
  24.                 startActivity(intent2); 
  25.                 break; 
  26.         } 
  27.     }  

此時(shí)在MainActivity中啟動(dòng)MainActivity,則Activity棧中只會(huì)創(chuàng)建一次;但是先啟動(dòng)NextActivity之后再啟動(dòng)MainActivity,則會(huì)創(chuàng)建新的MainActivity,因?yàn)榇藭r(shí)的Activity棧頂是NextActivity

MainActivity ->MainActivity ->MainActivity

MainActivity -> NextActivity -> MainActivity

啟動(dòng)示例圖

3.singleTask

當(dāng)活動(dòng)的啟動(dòng)模式為singleTask時(shí),啟動(dòng)該Activity會(huì)現(xiàn)在棧中檢查是否已存在,若存在則直接將該活動(dòng)之上的Activity全部出棧。

android:launchMode="singleTask"

啟動(dòng)示例圖

4.singleInstance

singleInstance模式下會(huì)有一個(gè)單獨(dú)的返回棧來管理活動(dòng)。不管哪個(gè)應(yīng)用程序來訪問該活動(dòng),都共用同一個(gè)棧,這樣就可以允許其他程序調(diào)用,實(shí)現(xiàn)共享該活動(dòng)。

android:launchMode="singleInstance"

啟動(dòng)示例圖

圖中啟動(dòng)的過程是:Main -> New -> Next 這個(gè)過程很容易看懂

返回過程是:Next -> Main -> New

明顯看出順序不一樣,為什么會(huì)出現(xiàn)這種情況呢?

NextActivity和MainActivity處于同一個(gè)棧,當(dāng)我們返回時(shí),NextActivity出棧,此時(shí)棧A中還存在MainActivity,并且處于棧頂,所以會(huì)看到MainActivity.

當(dāng)MainActivity執(zhí)行返回時(shí),棧A會(huì)清空,然后我們就看到了位于棧B的NewActivity。

之后NewActivity出棧,棧B也為空時(shí),App退出。

Activity的啟動(dòng)模式簡單介紹到這里, 希望對您有所幫助,有不足或者錯(cuò)誤的地方請指正。

后面會(huì)每星期至少一篇跟新本系列,感興趣可以關(guān)注。

一起學(xué)習(xí),一起進(jìn)步。


分享標(biāo)題:Activity啟動(dòng)模式(launchMode)詳解
鏈接URL:http://www.5511xx.com/article/coedhos.html