亚洲情人网-亚洲情人-亚洲欧洲综合-亚洲欧洲自拍-欧美专区亚洲

android activity啟動(dòng)流程(全網(wǎng)最全Android開發(fā)筆記)

  • 生活
  • 2023-04-25 13:31

一.先領(lǐng)會(huì)棧的觀念(安置Activity范例的容器)

1.Task(線性表)

工作棧Task,用來安置Activity范例的容器,進(jìn)步后出,重要有2個(gè)基礎(chǔ)操縱:壓棧和出棧,其所寄存的Activity是不扶助從新排序的,只能按照壓棧和出棧操縱變動(dòng)Activity的程序。

2.app啟用時(shí),體例會(huì)為它默許創(chuàng)造一個(gè)對應(yīng)的Task,用來安置根Activity

ps:Activity之間不妨彼此啟用,暫時(shí)運(yùn)用的Activity不妨去啟用其余運(yùn)用的Activity(相機(jī)),那么即是說棧的功效不妨把其它app的activity介入到本人app的棧里.

以是Task不妨領(lǐng)會(huì)為控制處置一切用到的Activity范例的棧,然而.android5.0之后跨過程挪用activity,這個(gè)activity會(huì)被放入到一個(gè)新的棧中。

二.啟用形式(只能按照壓棧和出棧操縱變動(dòng)Activity的程序,以是是啟用形式是以哪種模樣入棧)

經(jīng)過在AndroidManifest文獻(xiàn)中的屬性andorid:launchMode來樹立大概經(jīng)過Intent的flag來樹立

1.standard(慣例模樣入棧)

默許形式。在這個(gè)形式下,城市默許創(chuàng)造一個(gè)新的范例。所以,在這種形式下,不妨有多個(gè)溝通的范例,也允很多個(gè)溝通Activity疊加。運(yùn)用場景:絕大普遍Activity。

2.singleTop(棧頂復(fù)用模樣入棧)==FLAG_ACTIVITY_SINGLE_TOP

棧頂復(fù)用形式,即使要打開的activity在工作棧的頂部仍舊生存,就不會(huì)創(chuàng)造新的范例,而是挪用onNewIntent()本領(lǐng)。制止棧頂?shù)腶ctivity被反復(fù)的創(chuàng)造。運(yùn)用場景:在報(bào)告欄點(diǎn)擊收到的報(bào)告,而后須要啟用一個(gè)Activity,這個(gè)Activity就不妨用singleTop,要不歷次點(diǎn)擊城市興建一個(gè)Activity。某個(gè)場景下貫串趕快點(diǎn)擊,啟用了兩個(gè)Activity。即使這個(gè)功夫待啟用的Activity運(yùn)用singleTop形式也是不妨制止這個(gè)Bug的。

3.singleTask(棧內(nèi)復(fù)用模樣入棧)==FLAG_ACTIVITY_CLEAR_TOP

棧內(nèi)復(fù)用形式,activity只會(huì)在工作棧內(nèi)里生存一個(gè)范例。即使要激活的activity,在工作棧內(nèi)里仍舊生存,就不會(huì)創(chuàng)造新的activity,而是復(fù)用這個(gè)仍舊生存的activity,挪用onNewIntent()本領(lǐng),而且清空這個(gè)activity工作棧上頭一切的activity(CLEAR_TOP回到棧頂)。運(yùn)用場景:大普遍App的網(wǎng)頁。對于大局部運(yùn)用,當(dāng)咱們在主界面點(diǎn)擊回退按鈕的功夫都是退出運(yùn)用,那么當(dāng)咱們第一次加入主界面之后,主界面坐落棧底,此后盡管咱們翻開了幾何個(gè)Activity,只有咱們再次回到主界面,都該當(dāng)運(yùn)用將主界面Activity上一切的Activity移除的辦法來讓主界面Activity居于棧頂,而不是往棧頂新加一個(gè)主界面Activity的范例,經(jīng)過這種辦法不妨保護(hù)退出運(yùn)用時(shí)一切的Activity都能報(bào)廢棄。

4.singleInstance(不入棧)

簡單范例形式,所有大哥大操縱體例內(nèi)里惟有一個(gè)范例生存。各別的運(yùn)用去翻開這個(gè)activity共享公用的同一個(gè)activity。他會(huì)運(yùn)轉(zhuǎn)在本人獨(dú)立,獨(dú)力的工作棧內(nèi)里,而且工作棧內(nèi)里惟有他一個(gè)范例生存。運(yùn)用場景:呼喚復(fù)電界面。這種形式的運(yùn)用情景比擬常見,在Launcher中大概運(yùn)用。大概你決定你須要使Activity惟有一個(gè)范例。倡導(dǎo)精心運(yùn)用。

5.FLAG_ACTIVITY_NO_HISTORY

Activity運(yùn)用這種形式啟用Activity,當(dāng)該Activity啟用其余Activity后,該Activity就消逝了,不會(huì)保持在Activity棧中。

三.FLAG_ACTIVITY_NEW_TASK這個(gè)屬性規(guī)則是:樹立此狀況,開始會(huì)搜索能否生存和被啟用的Activity具備溝通的親和性的工作棧(即taskAffinity,同一個(gè)運(yùn)用步調(diào)中的activity的親和性一律),即使有,則徑直把這個(gè)棧完全挪動(dòng)到前臺,并維持棧中的狀況靜止,即棧中的activity程序靜止,即使沒有,則興建一個(gè)棧來寄存被啟用的activity。1.getTaskId();獲得暫時(shí)activity所處的棧

2.同一個(gè)運(yùn)用步調(diào)中的activity的親和性一律(taskAffinity),也即是說Actviityaintent時(shí)setFalg(Intent.FLAG_ACTIVITY_NEW_TASK)到Activityb然而Actviitya和Activityb仍舊一個(gè)棧

在各別的運(yùn)用中跳轉(zhuǎn)才會(huì)創(chuàng)造新的Task。

3.在Activity左右文除外啟用Activity須要給Intent樹立FLAG_ACTIVITY_NEW_TASK標(biāo)記,否則會(huì)報(bào)特殊。

四FLAG_ACTIVITY_CLEAR_TASK(必需和FLAG_ACTIVITY_NEW_TASK一道運(yùn)用)

清空棧內(nèi)activity,只留住這個(gè)activity

猜你喜歡

主站蜘蛛池模板: 欧美日韩视频在线一区二区 | 成人精品视频在线观看完整版 | 自拍偷拍第一页 | 中文字幕 自拍偷拍 | 亚洲精品乱码久久久久久蜜桃欧美 | 亚洲国产精久久久久久久 | 9久视频 | 亚洲毛片电影 | 五月天激情综合网 | 综合五月天 | 亚洲国产精品二区久久 | 亚洲免费视频观看 | 中文永久免费观看网站 | 亚洲自拍小视频 | 亚洲视频免费在线看 | 免费一级在线 | 羞羞色男人的天堂 | 午夜欧美精品久久久久久久久 | 欧美四虎| 亚洲综合色丁香婷婷六月图片 | 亚洲成a人片77777kkkk | 在线男人天堂 | 五月天婷婷缴情五月免费观看 | 欧美日韩在线精品成人综合网 | 伊人婷婷综合缴情亚洲五月 | 精品国产成人系列 | 亚洲国产午夜 | 四虎久久影院 | 亚洲国产精品成人久久 | 久久人体视频 | 国产成人一区二区三区 | 国产无限制自拍 | 综合激情婷婷 | 一级黄色动作片 | 五月婷婷之婷婷 | 久久综合久久精品 | 亚洲综合成人网在线观看 | 亚洲日韩欧美综合 | 国产98在线 | 传媒麻豆 | 八月丁香婷婷 | 久久久久久久久久免免费精品 |