㈠ android系統的幾種啟動模式
1.一般啟動模式(normal mode) 進入方法:按電源鍵啟動 描述:這是正常啟動手機的方法 2.安全模式(safe mode) 進入方法:按住menu鍵,按電源鍵啟動手機,直至手機啟動完成松開menu鍵 描述:和正常啟動一樣,但沒有登記Google,所以不能訪問Market或使用你的Google賬號 3.引導模式(bootloader mode) 進入方法:按住照相鍵,按電源鍵啟動手機 描述:可以從SD卡上安裝新的系統映像(DREAIMG.NBH),只需再按一次電源鍵。為獲取root許可權,對手機進行降級,就是使用這個模式。 4.恢復模式(recovery mode) 進入方法:按住HOME鍵,按電源鍵啟動手機 描述:可以打開命令解釋程序(shell),刷新映像文件(flash image),執行備份等。當然這一切取決於你手機上的recovery image版本。 5.診斷模式(diagnostic mode) 進入方法:按住軌跡球,按電源鍵啟動手機 描述:用於測試(按音量鍵選擇項目) 6.fastboot模式 進入方法:按住返回鍵,按電源鍵啟動手機,直至屏幕出現FASTBOOT字樣後松開返回鍵
㈡ android 怎麼設置activity的啟動模式
在Android中每個界面都是一個Activity,切換界面操作其實是多個不同Activity之間的實例化操作。在Android中Activity的啟動模式決定了Activity的啟動運行方式。
Android總Activity的啟動模式分為四種:
Activity啟動模式設置:
<activity android:name=".MainActivity" android:launchMode="standard" />
Activity的四種啟動模式:
1. standard
模式啟動模式,每次激活Activity時都會創建Activity,並放入任務棧中。
2. singleTop
如果在任務的棧頂正好存在該Activity的實例, 就重用該實例,否者就會創建新的實例並放入棧頂(即使棧中已經存在該Activity實例,只要不在棧頂,都會創建實例)。
3. singleTask
如果在棧中已經有該Activity的實例,就重用該實例(會調用實例的onNewIntent())。重用時,會讓該實例回到棧頂,因此在它上面的實例將會被移除棧。如果棧中不存在該實例,將會創建新的實例放入棧中。
4. singleInstance
在一個新棧中創建該Activity實例,並讓多個應用共享改棧中的該Activity實例。一旦改模式的Activity的實例存在於某個棧中,任何應用再激活改Activity時都會重用該棧中的實例,其效果相當於多個應用程序共享一個應用,不管誰激活該Activity都會進入同一個應用中。
其中standard是系統默認的啟動模式。
下面通過實例來演示standard的運行機制:
1 private TextView text_show;
2 private Button btn_mode;
3
4 @Override
5 public void onCreate(Bundle savedInstanceState) {
6 super.onCreate(savedInstanceState);
7 setContentView(R.layout.activity_main);
8
9 text_show = (TextView) this.findViewById(R.id.text_show);
10
11 text_show.setText(this.toString());
12
13 btn_mode = (Button) this.findViewById(R.id.btn_mode);
14
15 }
16
//按鈕單擊事件
17 public void LaunchStandard(View v){
18 startActivity(new Intent(this,MainActivity.class));
19
20 text_show.setText(this.toString());
21 }
㈢ Android的Activity代碼是怎麼一個運行機制。
在Android中每個界面都是一個Activity,切換界面操作其實是多個不同Activity之間的實例化操作。在Android中Activity的啟動模式決定了Activity的啟動運行方式。
Android總Activity的啟動模式分為四種:
Activity啟動模式設置:
<activity android:name=".MainActivity" android:launchMode="standard" />
Activity的四種啟動模式:
1. standard
模式啟動模式,每次激活Activity時都會創建Activity,並放入任務棧中。
2. singleTop
如果在任務的棧頂正好存在該Activity的實例, 就重用該實例,否者就會創建新的實例並放入棧頂(即使棧中已經存在該Activity實例,只要不在棧頂,都會創建實例)。
3. singleTask
如果在棧中已經有該Activity的實例,就重用該實例(會調用實例的onNewIntent())。重用時,會讓該實例回到棧頂,因此在它上面的實例將會被移除棧。如果棧中不存在該實例,將會創建新的實例放入棧中。
4. singleInstance
在一個新棧中創建該Activity實例,並讓多個應用共享改棧中的該Activity實例。一旦改模式的Activity的實例存在於某個棧中,任何應用再激活改Activity時都會重用該棧中的實例,其效果相當於多個應用程序共享一個應用,不管誰激活該Activity都會進入同一個應用中。
其中standard是系統默認的啟動模式。
下面通過實例來演示standard的運行機制:
1 private TextView text_show;
2 private Button btn_mode;
3
4 @Override
5 public void onCreate(Bundle savedInstanceState) {
6 super.onCreate(savedInstanceState);
7 setContentView(R.layout.activity_main);
8
9 text_show = (TextView) this.findViewById(R.id.text_show);
10
11 text_show.setText(this.toString());
12
13 btn_mode = (Button) this.findViewById(R.id.btn_mode);
14
15 }
16
//按鈕單擊事件
17 public void LaunchStandard(View v){
18 startActivity(new Intent(this,MainActivity.class));
19
20 text_show.setText(this.toString());
21 }
㈣ Android系統手機幾種運行模式解析是什麼
Android系統中具備6個模式,分別為一般啟動模式(normal mode)、安全模式(safe mode)、恢復模式(recovery mode)、引導模式(bootloader mode)、fastboot模式和診斷模式(diagnostic mode)。
一般啟動模式(normal mode)的功能是正常啟動手機,方法為關機狀態下按電源鍵啟動。
安全模式(safe mode)。此模式和正常啟動一樣,但沒有登記Google,所以不能訪問Market或使用你的Google賬號。操作方法為按住「menu」鍵,按電源鍵啟動手機,直至手機啟動完成松開「menu」鍵。
恢復模式(recovery mode)可打開命令解釋程序(shell),刷新映像文件(flash image),執行備份等。當然這一切取決於你手機上的recovery image版本。使用方法很簡單,就是home鍵和電源鍵一起按。
引導模式(bootloader mode)的功能是從SD卡上安裝新的系統映像(DREAIMG.NBH),只需再按一次電源鍵。值得一提的事為Android手機獲取root許可權,就是使用這個模式。操作方法為照相鍵和電源鍵一起按。
fastboot模式主要是在電腦上使用fastboot命令來刷新映像文件。使用方法為按住返回鍵,按電源鍵啟動手機,直至屏幕出現FASTBOOT字樣後松開返回鍵。
㈤ android中的activity的啟動方式有哪幾種
Activity啟動模式有4種,分別為standard、singleTop、singleTask、singleInstance。
1.standard 默認模式,可以不用寫配置。在這個模式下,都會默認創建一個新的實例。因此,在這種模式下,可以有多個相同的實例,也允許多個相同Activity疊加。
2.singleTop 可以有多個實例,但是不允許多個相同Activity疊加。即,如果Activity在棧頂的時候,啟動相同的Activity,不會創建新的實例,而會調用其onNewIntent方法。
3.singleTask 只有一個實例。在同一個應用程序中啟動他的時候,若Activity不存在,則會在當前task創建一個新的實例,若存在,則會把task中在其之上的其它Activity destory掉並調用它的onNewIntent方法。
4.singleInstance只有一個實例,並且這個實例獨立運行在一個task中,這個task只有這個實例,不允許有別的Activity存在。
㈥ Android開發,activity的默認啟動模式為標准啟動模式,什麼時候會用到其他的啟動模式
啟動模式簡單地說就是Activity啟動時的策略,在AndroidManifest.xml中的標簽的android:launchMode屬性設置;
啟動模式有4種,分別為standard、singleTop、singleTask、singleInstance;
講解啟動模式之前,有必要先了解一下「任務棧」的概念;
一 :
standard 模式:這個就沒有什麼好說的了,Android默認Activity啟動的模式 就是 standard,如果有3個 Activity,Act1,Act2,Act3, 如果從Act1 啟動到Act2 ,在啟動到Act3,那麼Android 的任務棧(task stack)分別為 Act1、Act2、Act3,Act3 在棧頂,如果此時按手機返回鍵,則需要返回3次才能返回到桌面(假設是從桌面啟動的demo),任務棧分銷毀掉 Act3,Act2,最後Act1 。
二 :singleTop模式:
實驗效果:
singleTop模式:該啟動模式和standard模式相差不多,任務棧分配也很相似,如:現有 act1,act 2,在act2 清單文件中配置 android:launchMode="singleTop" ,其他都是默認standard 模式, 若從桌面啟動該實驗demo,從act 1,到act2 ,那麼任務棧則分配為,act1,act2,此時該任務棧和 standard 模式任務棧分配則完全相同,接下來則說明不同的地方,如果在act2 界面中 啟動 到act1, 此時的 任務棧 情況則為 act1,act2,act1,在由act1 啟動到act2,在啟動到act2,進行多次啟動,(在act2界面)任務棧的情況則為,act1,act2,act1,act2,棧頂的act2 則不會重新創建,則會復用act2 該 Activit, 依次類推。
理論知識:
singleTop,如果任務棧的棧頂元素是要被激活的組件,不會創建新的Activity放在任務棧,而是會復用棧頂的Activity。 如果發現棧頂的元素不是要激活的Activity,就會創建新的Activity 放置到任務棧裡面
singleTop模式應用場景 :
App程序中(或瀏覽器中)保存的書簽,假如用戶看到一個界面保存自己喜歡的標簽,假如要保存10個,這個時候用戶在返回鍵的時候,則會返回10次才能返回到App應用中, Android下singleTop 則解決該問題。
三singleTask 模式 :
實驗效果 相差不大,實驗內容就不多說了,自己可以寫個小demo,兩個Activity,每個Activiy 有兩個button,可以相互啟動 打日誌去動手查看,會理解更加深刻,可以參照著 SingleTop模式去實驗,以下只是講解下 和SingleTop的區別:
區別如下:(理論知識)
SingleTask 操作模式,一般和singleTop操作模式類似,如果他發現任務棧裡面已經有了要啟動的這個Activity,他會清空這個Activity所在的任務棧上面的所有Activiy,然後直接復用這個已經存在的Activity 。
應用場景:
如果一個App中,有一個功能需要載入網頁內容 ,打開一個 browserActiviy現在網頁內容,則內存開銷非常大,首先要初始化webkit /c++ 嵌入式瀏覽器內核broweractivity 配置了singleTask,空間換時間,使用該模式可以節省內存開銷。
四 :singleinstance 模式 :
直接理論知識吧」:
singleInstance操作模式會新開啟一個任務棧,跟其他普通Activity不是 同一個任務棧,比較牛,他的模式流程是 首先要新開啟一個新的任務棧把要激活的Activity放置到新的 任務棧里,這個任務棧裡面只有且 只有一個實例,也比較極端吧。說比較極端也跟他的應用場景有關系。
應用場景 :
App各種詞典,向有道詞典,什麼金山詞典,說極端是因為不想被放置到同一個任務棧裡面,它是全局的系統程序應用,達到節省內存的使用目的。
㈦ Activity四種啟動模式有哪些
Activity的啟動模式可以通過AndroidManifest.xml文件中的<activity>元素的屬性來指定,一共有4中模式:
<activity android:name="ActivityMain" android:launchMode="singleTask"></activity>
1 standard
2 singleTop
3 singleTask
4 singleInstance
這4中模式又分兩類,standard和signleTop屬於一類, singleTask和signleInstance屬於另一類。
standard和singleTop屬性的 Activity 的實例可以屬於任何任務(Task),並且可以位於Activity堆棧的任何位置。比較典型的一種情況是,一個任務的代碼執行 startActivity(),如果傳遞的 Intent 對象沒有包含 FLAG_ACTIVITY_NEW_TASK 屬性, 指定的 Activity 將被該任務調用,從而裝入該任務的Activity 堆棧中。 standard和singleTop的區別在於:standard模式的Activity在被調用時會創建一個新的實例,所有實例處理同一個 Intent對象; 但對於singleTop模式的Activity,如果被調用的任務已經有一個這樣的Activity 在堆棧的頂端,那麼不會有新的實例創建, 任務會使用當前頂端的Activity實例來處理Intent對象,換句話說,如果被調用的任務包含一個不在堆棧頂端的 singleTop Activity, 或者堆棧頂端為 singleTop 的Activity的任務不是當前被調用的任務,那麼,仍然會有一個新的Activity對象被創建。
singleTask 和 singleInstance模式的Activity 僅可用於啟動任務的情況, 這種模式的Activity總是處在Activity堆棧的最底端,並且一個任務中只能被實例化一次。兩 者的區別在於:對於 singleInstance模式的Activity, 任務的Activity堆棧中如果有這樣的Activity,那它將是堆棧中的唯一的 Activity, 當前任務收到的 Intent 都由它處理, 由它開啟的其他 Activity 將在其他任務中被啟動; 對於 SingleTask模式的Activity,它在堆棧底端,其上方可以有其他Activity被創建, 但是,如果發給該Activity的Intent對象到來時該Activity不在堆棧頂端,那麼該Intent對象將被丟棄,但是界面還是會切換到當前 的Activity。
在多Activity開發中,有可能是自己應用間的activity 跳轉,或者夾帶其他應用的可復用activity。可能會希望跳轉到原來某個activity實例,而非產生多個重復的activity。我們可藉助 activity 四種啟動模式來實現不同的需求:
standard 默認模式 --------- 來了intent,每次都創建新的實例。
singleTop -------- 來了intent, 每次都創建新的實例,僅一個例外:當棧頂的activity 恰恰就是該
activity的實例(即需要創建的實例)時,不再創建新實例。這解決了棧頂復用問題,想一想,你按兩次back鍵,退出的都是同一個activity,這感覺肯定不爽。
singleTask ---------- 來了intent後,檢查棧中是否存在該activity的實例,如果存在就把intent發送給它,否則就創建一個新的該activity的實例,放入 一個新的task棧的棧底。肯定位於一個task的棧底,而且棧中只能有它一個該activity實例,但允許其他activity加入該棧。解決了在一 個task中共享一個activity。
singleInstance ----------- 肯定位於一個task的棧底, 並且是該棧唯一的activity。解決了多個task共享一個activity。
㈧ Activity的啟動模式有哪幾種,分別用於什麼
剛好最近又梳理了一下,結合我的實際使用場景回答一下= =
有四種啟動模式,需要知道的是activity是交由activity棧(任務棧)管理的
standard:會在啟動時創建一個新實例入棧,所以每次打開都是一個新的界面
場景:默認模式,一般的activity用這個就好
singleTop:當啟動activity時,有相同的activity在前台與用戶交互,就復用這個activity,回調onNewIntent()方法,避免棧頂的activity被重復的創建;如果沒在棧頂,依然會創建新的實例加在棧頂
場景:這個主要針對重復打開的情況,比如你點擊通知欄,跳轉到消息中心,如果此時消息中心已經打開,就不會重新打開新的界面,合乎邏輯
singleTask:類似singleTop,也是避免重復創建,唯一不同的是,當啟動activity時,有相同的activity在棧內,會復用此activity,回調onIntent(),並清空此activity之上所有activity
場景:一般用於程序主界面,利用清空activity的特性,比如你在應用內,打開了多個界面,觸發了某個操作後都需要跳轉到首頁,設置了singleTask之後,就直接啟動主頁就好,會把之前打開的全部關掉(免得你手動一個一個關閉activity)
singleInstance:顧名思義,單一實例,整個手機操作系統裡面只有一個實例存在。不同的應用去打開這個activity 共享公用的同一個activity
場景:常見於系統呼叫來電界面,每個應用打開不會重新創建新的該撥打界面。這種模式比較少用,除非你確定需要使該Activity只有一個實例
最後,上面介紹是在默認沒有指定taskAffinity的情況下(即包名),具體想要更深入或者實現更復雜的場景,請結合taskAffinty和Intent Flag具體分析,在此就不介紹了。
以上。