Activity intent經常使用的 FLAG

2021-09-08 10:35:45 字數 1440 閱讀 9058

intent.flag_activity_new_task

預設的跳轉型別,會重新建立乙個新的activity,不過與這種情況,比方說task1中有a,b,c三個activity,此時在c中啟動d的話,如果在manifest.xml檔案中給d新增了affinity的值和task中的不一樣的話,則會在新標記的affinity所存在的task中壓入這個activity。如果是預設的或者指定的affinity和task一樣的話,就和標準模式一樣了啟動乙個新的activity.

flag_activity_single_top

這個flag就相當於載入模式中的singletop,比如說原來棧中情況是a,b,c,d在d中啟動d,棧中的情況還是a,b,c,d

flag_activity_clear_top

這個flag就相當於載入模式中的singletask,這種flag啟動的activity會把要啟動的activity之上的activity全部彈出棧空間。類如:原來棧中的情況是a,b,c,d這個時候從d中跳轉到b,這個時候棧中的情況就是a,b了

flag_activity_brought_to_front

這個網上很多人是這樣寫的。如果activity在task存在,拿到最頂端,不會啟動新的activity。

這個有可能會誤導大家! 他這個flag其實是這個意思! 比方說我現在有a,在a中啟動b,此時在a中intent中加上這個標記。此時b就是以  flag_activity_brought_to_front 這個啟動的,此時在b中再啟動c,d(正常啟動c,d),如果這個時候在d中再啟動b,這個時候最後的棧的情況是 a,c,d,b.

特別注意的是,我上面說的網上人描述的這個flag,會很容易讓人誤解成這樣,a,b,c,d都是標準載入,然後我在d中啟動a,這個intent加上

flag_activity_brought_to_front  ,就會誤認為變成b,c,d,a!!其實不是,這個時候應該是a,b,c,d,a.

不信的人大家試試看。不過下面這個標記和這個標記就會讓大家明白了!

flag_activity_reorder_to_front

就按在intent.flag_activity_brought_to_front最後說的,如果在a,b,c,d正常啟動的話,不管b有沒有用flag_activity_brought_to_front啟動,此時在d中啟動b的話,還是會變成a,c,d,b的。

flag_activity_no_history

用這個標記顧名思義! 意思就是說用這個flag啟動的activity,一旦推出,他就不會存在於棧中,比方說!原來是a,b,c 這個時候再c中以這個flag啟動d的 , d再啟動e,這個時候棧中情況為a,b,c,e。

Activity Intent深入解析

學習android sdk有段時間了,對activity intent的學習與使用都比較了解。第一次完整的學習activity intent後,我就感覺這似乎與windows com技術有些似曾相識的感覺,寫了一篇將activity 與 com 做了比較,但是一直感覺意猶未盡,前幾天在程式設計師雜誌...

NOKIA筆經 面經

今天應該是畢業找工作生涯的最後一次面試了,發個筆經面經,為後來人 鋪路.我面的是radio network planning。筆試 海選,通過chinahr出的一組能力測試題篩選。好像篩了不少人。題目包括詞語填空,閱讀理解,圖形,數字題,基本數學題,題。一面 面試官為應聘職位的部門經理。基本上為中文...

面經和菜經

tencent面經 面試前一天晚上要休息好,精神養好 提前準備充足,包括服裝,簡歷,了解好公司的相關資訊 找工作一定要定位好合適的工作,把握不大的不要過去浪費時間 面試的時候一定不能緊張,回答問題一定要有明晰的思路 炸丸子經 所有材料事先備好,一切準備妥當,規劃好攪拌的順序 用筷子夾麵糰的時候,要用...