如果本文幫助到你赠叼,本人不勝榮幸,如果浪費(fèi)了你的時間违霞,本人深感抱歉嘴办。
希望用最簡單的大白話來幫助那些像我一樣的人。如果有什么錯誤买鸽,請一定指出涧郊,以免誤導(dǎo)大家、也誤導(dǎo)我眼五。
本文來自:http://www.reibang.com/u/320f9e8f7fc9
感謝您的關(guān)注妆艘。
用過微信小程序的人應(yīng)該都可以發(fā)現(xiàn),當(dāng)我們打開一個小程序之后看幼,在近期任務(wù)列表里面就會新創(chuàng)建一個頁面(MIUI8 好像沒有)批旺,感覺這個功能還挺有意思的。
研究一下诵姜,發(fā)現(xiàn)還挺簡單的汽煮。
先上一個效果圖:
有兩種方式可以實(shí)現(xiàn)效果
第一種:代碼實(shí)現(xiàn)
即頁面跳轉(zhuǎn)的時候增加 Flag,
Intent intent = new Intent(this, Main2Activity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_DOCUMENT);
intent.addFlags(Intent.FLAG_ACTIVITY_MULTIPLE_TASK);
startActivity(intent);
添加兩個 Flag 即可棚唆,注意關(guān)閉的時候要使用:
finishAndRemoveTask();
FLAG_ACTIVITY_NEW_DOCUMENT:此標(biāo)志用于將文檔打開到一個 基于此意圖的新任務(wù)中暇赤;
FLAG_ACTIVITY_MULTIPLE_TASK:此標(biāo)志用于創(chuàng)建新任務(wù)并將活動導(dǎo)入其中。
注意:使用這種方式瑟俭,必須具有在清單文件中設(shè)置的 android:launchMode="standard" 屬性值(默認(rèn)就是這個屬性)
第二種:配置 AndroidManifest.xml
在要跳轉(zhuǎn)的 Activit 配置
<activity
android:name=".Main3Activity"
android:documentLaunchMode="intoExisting"
android:excludeFromRecents="true"
android:maxRecents="3"/>
AndroidManifest.xml 中的屬性:
1. documentLaunchMode(啟動模式):
intoExisting:如果之前已經(jīng)打開過翎卓,則會打開之前的(類似于 Activity 的 singleTask);
always:不管之前有沒有打開摆寄,都新創(chuàng)建一個(類似于 Activity 的 standard)失暴;
none:不會在任務(wù)列表創(chuàng)建新的窗口坯门,依舊顯示單個任務(wù);
never:不會在任務(wù)列表創(chuàng)建新的窗口逗扒,依舊顯示單個任務(wù)古戴,設(shè)置此值會替代 FLAG_ACTIVITY_NEW_DOCUMENT 和 FLAG_ACTIVITY_MULTIPLE_TASK 標(biāo)志的行為(如果在 Intent 中設(shè)置了其中一個標(biāo)志)。
注:對于除 none 和 never 以外的值矩肩,必須使用 launchMode="standard" 定義 Activity现恼。如果未指定此屬性,則使用 documentLaunchMode="none"黍檩。
2. excludeFromRecents:
默認(rèn)為 false 叉袍。
設(shè)置為 true 時,只要你離開了這個頁面刽酱,它就會從最近任務(wù)列表里移除掉喳逛。
3. maxRecents:
設(shè)置為整型值,設(shè)置應(yīng)用能夠包括在概覽屏幕中的最大任務(wù)數(shù)棵里。默認(rèn)值為 16润文。達(dá)到最大任務(wù)數(shù)后,最近最少使用的任務(wù)將從概覽屏幕中移除殿怜。 android:maxRecents 的最大值為 50(內(nèi)存不足的設(shè)備上為 25)典蝌;小于 1 的值無效。