1.落筆緣由
為什么想要App不顯示在最近使用過的應用程序列表中?我們知道如果在最近使用過的應用程序列表中將APP劃掉,那么這個APP就會被銷毀。為了延長APP常駐時間,就希望隱藏APP,不讓用戶在最近使用過的應用程序列表中將APP銷毀。但是這只是一個小手段,用戶還是可以到系統設置的應用中銷毀APP,不要妄想通過這個方法來保活APP.
2.例子解析
實現上面的內容只需要在AndroidManifest中的Activity標簽中添加android:excludeFromRecents="true"。
任務是否會在最近使用的應用程序的列表("最近的應用程序")中顯示。也就是,當這個活動是根活動的一個新任務,這個屬性決定了任務應不應該出現在列表中最近的應用程序。設置"true"如果這個任務應該被排除在名單,設置"false"如果它應該被包括。默認值為"false"。
經過測試,當在被LAUNCHER的Activity設置了android:excludeFromRecents="true",App不顯示在最近使用過的應用程序列表中。也就是如下設置
如果MainActivity是LAUNCHER的Activity,而SecondActivity是MainActivity里的一個Button被點擊后才啟動的,如果在注冊清單了給SecondActivity設置了android:excludeFromRecents="true",是無效的,如下設置
但是如果在注冊清單里的SecondActivity里設置了android:launchMode="singleInstance",那么,當當前顯示的是SecondActivity的時候,App是不會顯示在最近使用過的應用程序列表中。
這也正好驗證了上面的一句話“當這個活動是根活動的一個新任務,這個屬性決定了任務應不應該出現在列表中最近的應用程序。”也就是說只有當這個Activity是處于任務棧根部的時候android:excludeFromRecents="true"才會起作用。但是,如果加了android:launchMode="singleInstance"當我們點擊桌面的APP圖標的時候,顯示的是MainActivity而不是SecondActivity.
最后展示一下什么是最近使用過的應用程序列表:
3.總結
怎樣防止App在后臺運行,點擊應用桌面圖標重新啟動?這個問題之前有碰到過,這篇文章有解釋。本來打算解決上面“加了android:launchMode="singleInstance"后,當APP在后臺運行,點擊應用桌面圖標的時候顯示的不是APP進入后臺時顯示的界面”的問題,但是并沒有用,這里記錄一下,以后有時間再研究吧。