Android 啟動(dòng)模式FLAG_ACTIVITY_CLEAR_TOP案例詳解
四種啟動(dòng)模式
- standard: 只要被啟動(dòng)就會(huì)創(chuàng)建一個(gè)新的
- singleTop: 棧頂復(fù)用(當(dāng)被啟動(dòng)的Activity處于Task棧頂時(shí),可以復(fù)用,直接調(diào)用onNewIntent方法)
- singleTask: 棧中復(fù)用(被啟動(dòng)的Activity已經(jīng)處于棧中,會(huì)將上邊的Activity清除出棧,調(diào)用onNewIntent)
- singleInstance 全局單實(shí)例(應(yīng)用場(chǎng)景:地圖,Activity初始化需要大量資源)
Intent的標(biāo)志位FLAG
- Intent.FLAG_ACTIVITY_SINGLE_TOP 與加載模式singleTop功能相同
- Intent.FLAG_ACTIVITY_CLEAR_TOP 銷毀目標(biāo)Activity和它之上的所有Activity,重新創(chuàng)建目標(biāo)Activity
例: A,B,C,D四個(gè)Activity,啟動(dòng)模式均為默認(rèn),依次啟動(dòng),在D中啟動(dòng)B。
- 添加Intent.FLAG_ACTIVITY_CLEAR_TOP
效果: C,D清除出棧;B被finish掉,重新啟動(dòng),重走生命周期,不會(huì)走onNewIntent()方法
Intent intent = new Intent(this,B.class); intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); d.startActivity(intent);
- 添加Intent.FLAG_ACTIVITY_CLEAR_TOP和Intent.FLAG_ACTIVITY_SINGLE_TOP
效果:C,D清除出棧,B調(diào)用onNewIntent()方法
Intent intent = new Intent(this,B.class); intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP); d.startActivity(intent);
- 添加Intent.FLAG_ACTIVITY_CLEAR_TOP和Intent.FLAG_ACTIVITY_REORDER_TO_FRONT
效果:C,D清除出棧,B回到前臺(tái), 調(diào)用onResume()方法
Intent intent = new Intent(this,B.class); intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_REORDER_TO_FRONT); d.startActivity(intent);
- App的退出登錄功能:?jiǎn)?dòng)LoginActivity,且棧中只有一個(gè)LoginActivity
Intent intent = new Intent(activity,LoginActivity.class); intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK); startActivity(intent);
到此這篇關(guān)于Android 啟動(dòng)模式FLAG_ACTIVITY_CLEAR_TOP案例詳解的文章就介紹到這了,更多相關(guān)Android 啟動(dòng)模式FLAG_ACTIVITY_CLEAR_TOP內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Android時(shí)間設(shè)置的3個(gè)小彩蛋分享
這篇文章主要給大家介紹了關(guān)于Android時(shí)間設(shè)置的3個(gè)小彩蛋,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),對(duì)各位Android開發(fā)者們具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2023-03-03Android插件化-RePlugin項(xiàng)目集成與使用詳解
這篇文章主要介紹了Android插件化-RePlugin項(xiàng)目集成與使用詳解,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-11-11Ubuntu中為Android系統(tǒng)上實(shí)現(xiàn)內(nèi)置C可執(zhí)行程序測(cè)試Linux內(nèi)核驅(qū)動(dòng)程序
本文主要介紹在Ubuntu上為Android系統(tǒng)內(nèi)置C可執(zhí)行程序測(cè)試Linux內(nèi)核驅(qū)動(dòng)程序,這里對(duì)測(cè)試Linux 內(nèi)核驅(qū)動(dòng)程序做了詳細(xì)介紹,并附有代碼示例,有興趣的小伙伴可以參考下2016-08-08Android WebView 詳解及簡(jiǎn)單實(shí)例
這篇文章主要介紹了Android WebView 詳解及簡(jiǎn)單實(shí)例的相關(guān)資料,需要的朋友可以參考下2017-04-04Android入門之使用SQLite內(nèi)嵌式數(shù)據(jù)庫(kù)詳解
Android內(nèi)帶SQLite內(nèi)嵌式數(shù)據(jù)庫(kù)了。這對(duì)于我們存儲(chǔ)一些更復(fù)雜的結(jié)構(gòu)化數(shù)據(jù)帶來(lái)了極大的便利。本文就來(lái)和大家聊聊具體的使用方法,希望對(duì)大家有所幫助2022-12-12Android實(shí)現(xiàn)仿慕課網(wǎng)下拉加載動(dòng)畫
這篇文章是我在做動(dòng)畫的項(xiàng)目中整理出來(lái)的,在eoe看了篇帖子,然后仿慕課網(wǎng)做了一個(gè)下拉加載動(dòng)畫。此功能實(shí)現(xiàn)方法是AnimationDrawable類進(jìn)行 Animation-list中item的循環(huán)遍歷圖片,類似于flash里的幀幀動(dòng)畫,需要的朋友可以參考下2015-07-07