在近期任務列表顯示單個APP的多個Activity

若是本文幫助到你,本人不勝榮幸,若是浪費了你的時間,本人深感抱歉。 但願用最簡單的大白話來幫助那些像我同樣的人。若是有什麼錯誤,請必定指出,以避免誤導你們、也誤導我。 本文來自:www.jianshu.com/u/320f9e8f7… 感謝您的關注。android

用過微信小程序的人應該均可以發現,當咱們打開一個小程序以後,在近期任務列表裏面就會新建立一個頁面(MIUI8 好像沒有),感受這個功能還挺有意思的。 研究一下,發現還挺簡單的。 先上一個效果圖:git


有兩種方式能夠實現效果github

第一種:代碼實現

即頁面跳轉的時候增長 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 便可,注意關閉的時候要使用:微信小程序

finishAndRemoveTask();
複製代碼

**FLAG_ACTIVITY_NEW_DOCUMENT:**此標誌用於將文檔打開到一個 基於此意圖的新任務中; **FLAG_ACTIVITY_MULTIPLE_TASK:**此標誌用於建立新任務並將活動導入其中。微信

注意:使用這種方式,必須具備在清單文件中設置的 android:launchMode="standard" 屬性值(默認就是這個屬性)this


第二種:配置 AndroidManifest.xml

在要跳轉的 Activit 配置spa

<activity
    android:name=".Main3Activity"
    android:documentLaunchMode="intoExisting"
    android:excludeFromRecents="true"
    android:maxRecents="3"/>
複製代碼

AndroidManifest.xml 中的屬性:code

1. documentLaunchMode(啓動模式):

**intoExisting:**若是以前已經打開過,則會打開以前的(相似於 Activity 的 singleTask); **always:**無論以前有沒有打開,都新建立一個(相似於 Activity 的 standard); **none:**不會在任務列表建立新的窗口,依舊顯示單個任務; **never:**不會在任務列表建立新的窗口,依舊顯示單個任務,設置此值會替代 FLAG_ACTIVITY_NEW_DOCUMENT 和 FLAG_ACTIVITY_MULTIPLE_TASK 標誌的行爲(若是在 Intent 中設置了其中一個標誌)。cdn

注:對於除 none 和 never 之外的值,必須使用 launchMode="standard" 定義 Activity。若是未指定此屬性,則使用 documentLaunchMode="none"。

2. excludeFromRecents:

默認爲 false 。 設置爲 true 時,只要你離開了這個頁面,它就會從最近任務列表裏移除掉。

3. maxRecents:

設置爲整型值,設置應用可以包括在概覽屏幕中的最大任務數。默認值爲 16。達到最大任務數後,最近最少使用的任務將從概覽屏幕中移除。 android:maxRecents 的最大值爲 50(內存不足的設備上爲 25);小於 1 的值無效。


項目在這裏:github.com/Wing-Li/App…

相關文章
相關標籤/搜索