成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Activity啟動(dòng)模式(launchMode)詳解

移動(dòng)開發(fā) Android
Activity的啟動(dòng)模式有四種,standard、singleTop、singleTask、singleInstance.

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

 

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è)簡(jiǎn)單的按鈕 ,實(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)模式簡(jiǎn)單介紹到這里, 希望對(duì)您有所幫助,有不足或者錯(cuò)誤的地方請(qǐng)指正。

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

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

責(zé)任編輯:龐桂玉 來源: Android開發(fā)中文站
相關(guān)推薦

2014-05-27 15:36:01

AndroidActivity啟動(dòng)模式

2016-03-24 14:02:05

ActivityAndroid啟動(dòng)

2021-08-11 17:15:17

AndroidActivity場(chǎng)景

2023-12-09 08:58:30

AndroidActivity啟動(dòng)模式

2021-06-29 08:54:23

設(shè)計(jì)模式代理模式遠(yuǎn)程代理

2011-06-01 17:35:35

Android Activity

2011-06-28 15:01:01

Qt PIMPL

2021-07-07 10:31:19

對(duì)象池模式解釋器模式設(shè)計(jì)模式

2012-02-21 23:05:17

Windows啟動(dòng)順序

2021-11-28 22:33:01

Go選項(xiàng)模式

2010-07-15 17:58:31

Perl模式

2009-08-18 11:03:31

Observer設(shè)計(jì)模

2010-06-09 13:52:55

OpenSUSE桌面

2010-06-13 15:58:20

GRUB啟動(dòng)命令

2024-12-16 08:10:00

Spring開發(fā)

2021-08-23 06:27:46

AndroidctivitysetContentV

2010-01-21 09:08:53

.NET設(shè)計(jì)模式

2009-07-10 16:14:29

MVC設(shè)計(jì)模式Swing

2018-10-29 08:47:48

傳輸模式無線

2010-02-03 13:26:54

Linux SVN
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 伊人色综合久久天天五月婷 | 久久成人高清视频 | 精品视频一区二区 | 欧美二区三区 | 免费视频久久久久 | 国产精久久久久久 | 国产精品欧美一区二区 | 91色视频在线观看 | 人人爱干 | 久久精品一区 | 91网站在线看 | 亚洲日本一区二区 | 成人精品一区二区 | 亚洲在线一区 | 少妇黄色| 亚洲国产激情 | 亚洲精品在线观看网站 | 91最新入口 | 精品免费视频 | 丁香一区二区 | 91亚洲国产成人久久精品网站 | 日韩第一区 | 国产在线对白 | 国产免费让你躁在线视频 | 精品久久久一区 | 国产a区| 久久国产一区二区三区 | 亚洲日韩中文字幕 | 91精品国产91久久久久久最新 | 国产美女在线观看 | 最新av在线播放 | 国产成人精品久久久 | 亚洲天堂一区 | 午夜在线 | 性大毛片视频 | 亚洲午夜精品一区二区三区他趣 | 91.xxx.高清在线 | 性生生活大片免费看视频 | 国家aaa的一级看片 h片在线看 | 成人永久免费视频 | 性色av香蕉一区二区 |