容易理解博文 Activity啟動模式

2021-06-29 00:05:57 字數 1159 閱讀 6386

activity啟動模式設定:

".mainactivity

" android:launchmode="

standard

" />activity的四種啟動模式:

1. standard

模式啟動模式,每次啟用activity時都會建立activity,並放入任務棧中。

2. singletop

如果在任務的棧頂正好存在該activity的例項, 就重用該例項,否者就會建立新的例項並放入棧頂(即使棧中已經存在該activity例項,只要不在棧頂,都會建立例項)。

3. singletask

如果在棧中已經有該activity的例項,就重用該例項(會呼叫例項的onnewintent())。重用時,會讓該例項回到棧頂,因此在它上面的例項將會被移除棧。如果棧中不存在該例項,將會建立新的例項放入棧中。

4. singleinstance

在乙個新棧中建立該activity例項,並讓多個應用共享改棧中的該activity例項。一旦改模式的activity的例項存在於某個棧中,任何應用再啟用改activity時都會重用該棧中的例項,其效果相當於多個應用程式共享乙個應用,不管誰啟用該activity都會進入同乙個應用中。

在android應用程式開發的時候,從乙個activity啟動另乙個activity並傳遞一些資料到新的activity上非常簡單,但是當您需要讓後台執行的activity回到前台並傳遞一些資料可能就會存在一點點小問題。

首先,在預設情況下,當您通過intent啟到乙個activity的時候,就算已經存在乙個相同的正在執行的activity,系統都會建立乙個新的activity例項並顯示出來。

launchmode為singletask的時候,通過intent啟到乙個activity,如果系統已經存在乙個例項,系統就會將請求傳送到這個例項上,但這個時候,系統就不會再呼叫通常情況下我們處理請求資料的oncreate方法,而是呼叫onnewintent方法,如下所示:

protected

void onnewintent(intent intent)

不要忘記,系統可能會隨時殺掉後台執行的activity,如果這一切發生,那麼系統就會呼叫oncreate方法,而不呼叫onnewintent方法,乙個好的解決方法就是在oncreate和onnewintent方法中呼叫同乙個處理資料的方法。

容易理解的博文 MVC

mvc model view controller m是指邏輯模型,v是指檢視模型,c則是控制器。乙個邏輯模型可以對於多種檢視模型 使用mvc的目的是將m和v的實現 分離,方便擴充套件,便於以後的管理 從開發者的角度,mvc把應用程式的邏輯層與介面是完全分開的,最大的好處是 介面設計人員可以直接參與...

Activity的啟動模

四種啟動模式 standard,singletop,singletask,singleinstance 通過在androidmanifest.xml的標籤中指定android launchmode屬性來設定啟動模式 standard standard是活動的預設啟動模式,我們知道android是通過...

Android歷程 Activity啟動模式

在android中的activity包含有四種啟動模式,分別為standard singletop singletask與singleinstance他們之間彼此聯絡,有各有各的特點 下面進行一下細緻的了解 1 standard standard為標準啟動模式,每次啟用時都會建立乙個新的activi...