Activity的四種LaunchMode(寫的真心不錯,建議大家都看看)
合抱之木,生於毫末;九層之臺,起於累土;千里之行,始於足下。《老子》
今天在社群看到有朋友問“如何在半年內成為頂級架構師”,有網友道“關燈睡覺,不用半年的...”,的確,做夢還來的快一些。作為一個程式設計師,樹立遠大的目標是值得欣賞的,但不能只去空想,要一步一步地實踐才行。成大事者,須從小事做起;萬事起於忽微,量變引起質變。
我們今天要講的是Activity的四種launchMode。
launchMode在多個Activity跳轉的過程中扮演著重要的角色,它可以決定是否生成新的Activity例項,是否重用已存在的Activity例項,是否和其他Activity例項公用一個task裡。這裡簡單介紹一下task的概念,task是一個具有棧結構的物件,一個task可以管理多個Activity,啟動一個應用,也就建立一個與之對應的task。
Activity一共有以下四種launchMode:
1.standard
2.singleTop
3.singleTask
4.singleInstance
我們可以在AndroidManifest.xml配置<activity>的android:launchMode屬性為以上四種之一即可。
下面我們結合例項一一介紹這四種lanchMode:
1.standard
standard模式是預設的啟動模式,不用為<activity>配置android:launchMode屬性即可,當然也可以指定值為standard。
我們將會一個Activity,命名為FirstActivity,來演示一下標準的啟動模式。FirstActivity程式碼如下:
- package com.scott.launchmode;
- import android.app.Activity;
- import android.content.Intent;
- import android.os.Bundle;
- import android.view.View;
- import android.widget.Button;
-
import android.widget.TextView;
- publicclass FirstActivity extends Activity {
- @Override
- publicvoid onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.first);
- TextView textView = (TextView) findViewById(R.id.textView);
- textView.setText(this.toString());
- Button button = (Button) findViewById(R.id.button);
- button.setOnClickListener(new View.OnClickListener() {
- @Override
- publicvoid onClick(View v) {
- Intent intent = new Intent(FirstActivity.this, FirstActivity.class);
- startActivity(intent);
- }
- });
- }
- }
然後我們連續點選幾次按鈕,將會出現下面的現象:
我們注意到都是FirstActivity的例項,但序列號不同,並且我們需要連續按後退鍵兩次,才能回到第一個FristActivity。standard模式的原理如下圖所示:
如圖所示,每次跳轉系統都會在task中生成一個新的FirstActivity例項,並且放於棧結構的頂部,當我們按下後退鍵時,才能看到原來的FirstActivity例項。
這就是standard啟動模式,不管有沒有已存在的例項,都生成新的例項。
2.singleTop
我們在上面的基礎上為<activity>指定屬性android:launchMode="singleTop",系統就會按照singleTop啟動模式處理跳轉行為。我們重複上面幾個動作,將會出現下面的現象:
相關推薦
Activity的四種LaunchMode(寫的真心不錯,建議大家都看看)
合抱之木,生於毫末;九層之臺,起於累土;千里之行,始於足下。《老子》 今天在社群看到有朋友問“如何在半年內成為頂級架構師”,有網友道“關燈睡覺,不用半年的...”,的確,做夢還來的快一些。作為一個程式設計師,樹立遠大的目標是值得欣賞的,但不能只去空想,要一步一步
轉載一篇關於springmvc下session的用法,覺得作者寫的不錯,給大家分享一下
繫結模型物件中某個屬性 Spring 2.0 定義了一個 org.springframework.ui.ModelMap 類,它作為通用的模型資料承載物件,傳遞資料供檢視所用。我們可以在請求處理方法中宣告一個 ModelMap 型別的入參,Spring 會將本次請求模型物
Android中的Activity四種啟動模式(launchMode)(面試必問)
android:launchMode standard 預設標準的啟動模式,每次startActivity(Intent intent)請求都建立一個新的activity實 例,適用於大多數場景。 singleTop 單一頂部,如果要啟動的activity在任務棧的頂部已經存在,不會建立新的例項,而是呼叫 o
基礎總結篇之二:Activity的四種launchMode
合抱之木,生於毫末;九層之臺,起於累土;千里之行,始於足下。《老子》 今天在社群看到有朋友問“如何在半年內成為頂級架構師”,有網友道“關燈睡覺,不用半年的...”,的確,做夢還來的快一些。作為一個程式設計師,樹立遠大的目標是值得欣賞的,但不能只去空想,要一步一步地實踐
java四種線程池簡介,使用
參數 有一個 例子 system pre mit time style over 為什麽使用線程池 1.減少了創建和銷毀線程的次數,每個工作線程都可以被重復利用,可執行多個任務。2.可以根據系統的承受能力,調整線程池中工作線線程的數目,防止消耗過多的內存 線程池流程
【筆記】Activity四種啟動模式區別
參考:https://blog.csdn.net/edisonchang/article/details/49981457 activity 啟動的四種模式 : AndroidManifest.xml :: android:launchMode="???" 1.standard:【不會
php四種基礎演算法:冒泡,選擇,插入和快速排序法 程式碼練習
function maopao($arr,$len) { for($i=1;$i<$len;$i++) { for($j=0;$j<$len-$i;$j++) { if($arr[$j]>$arr[$j+1])
四種讀寫方案IO流 (JAVA)
File類用於訪問檔案或目錄的屬性 流:指一連串流動的字元,是以先進先出的方式傳送資訊的通道。程式和資料來源之間是通過流聯絡起來的。 第一套:位元組流讀取寫入方案 FileInputStream :位元組流方式讀取文字檔案 FileInputStream fi
安卓四種launchMode的理解
反正 就是想起啥就看點啥,記點啥 今天看到, 隱約記得以前應該也是有去看過然後瞭解過的,但是當我再一次看到這個的時候還是,emmm,不知道具體啥意思。小計一下,增加印象。 1、安卓中有四種launchMode模式分別是: (1) standard
寫的不錯,轉--讓我們從NodeJS Streams開始從頭開始編寫一個Web伺服器
看完這篇文章後,真心的感覺閱讀原始碼的好處 Let's code a web server from scratch with NodeJS Streams https://www.codementor.io/ziad-saab/let-s-code-a-web-server-from-sc
Activity四種啟動模式的認識
最近看了一些前輩的文章,有了一些新的認識,不僅僅是知識,包括對待事情的態度。記錄下來,作為自己態度的見證。首先在android中對於Activity的例項是通過棧(Task)來進行管理的,棧是一種先進後出的資料結構。主要的操作就是進棧和出棧。簡單的如下圖所示。
總結:linux驅動之I2C至少四種讀寫方法
總結在linux環境下四種讀寫I2C裝置的方法:一:讀寫/dev/i2c-x裝置結點 /dev/i2c-x裝置結點對應的驅動檔案為核心目錄drivers/i2c下自帶的i2c-dev.c檔案,通讀此檔案可以發現它的工作流程。 1、通過register_chrde
Activity四種啟動模式的特點
一.Activity四種啟動模式的特點 1.standard模式 Activity預設的啟動模式,依次入棧出棧,滿足"先進後出"的原則。這種模式下,可以有多個相同的例項,也允許多個相同Activity疊加 2.singleTop模式 當啟動的Activity已
Imageloader四種圖片顯示(圓形,淡入,圓角,修飾)使用
這一長篇我們來看這四種圖片顯示在程式碼中如何使用,以開源元件中的例子為準。 先看一組圓形和淡入動畫的效果 這個淡入為了能看清效果我的時間改成了10s; 圓角的效果圖: 1.圓形圖片的使用 options =newDisplayImageOption
Android基礎之Activity四種啟動模式和task相關
1 啟動模式介紹 啟動模式簡單地說就是Activity啟動時的策略,在AndroidManifest.xml中的標籤的android:launchMode屬性設定; 啟動模式有4種,分別為standard、singleTop、singleTask、singleI
activity 四種啟動方式
這種型別的activity在執行後會被安排到單間,除了第一次建立的時候呼叫oncreate,後面不會再調,但是會呼叫onNewIntent。網上的技術文章都說像是瀏覽器,確實有點像,就這麼理解吧。但是發現宣告成singleInstance型別的activity中呼叫startActivityForRe
Android中Activity四種啟動模式和taskAffinity屬性詳解
在android應用開發中,打造良好的使用者體驗是非常重要的。而在使用者體驗中,介面的引導和跳轉是值得深入研究的重要內容。在開發中,與介面跳轉聯絡比較緊密的概念是Task(任務)和Back Stack(回退棧)。activity的啟動模式會影響Task和Back Stack
Activity四種啟動模式的利用場景
一.singleTask: 需求說明: 如果自己的客戶端處於執行狀態,按下Home鍵後臺掛起。此時如果使用微信調起自己的客戶端某 個頁面,不做任何處理的情況下,按下回退或者當前 Activity.finish(),頁面都會停留在自己的客戶端(因為自己的Application
Activity四種啟動模式
Activity啟動方式有四種,分別是: standard singleTop singleTask singleInstance 可以根據實際的需求為Activity設定對應的啟動模式,從而可以避免建立大量重複的Activity等問題。 設定Activity的啟動模式,只
Android activity四種啟動模式及taskAffinity屬性總結(附例子原始碼)
Android activity四種啟動模式總結本人目前在看 Android 開發藝術探索 這本書,書中對啟動模式的講解比較詳細,所以自己想總結下。如果各位能認真的看上一遍,相信會對android activity的啟動模式會有更加深刻的印象。Android啟動模式: