優雅的App完全退出方案(沒有任何記憶體流失隱患)

來源:互聯網
上載者:User

標籤:android開發   完全退出   

在Android開發過程中,特別是介面比較多的情況下,用平常的退出方式往往是不能完全退出這個應用,網路上也好多各種退出方案。其中一種應該是被廣大開發人員採納使用,也非常的清晰方便,就是在Application中維護一個單例的List<Activity>管理容器,每次開啟新的Activity就把當前Activity加入到容器中,然後在需要完全退出的時,就迴圈遍曆該容器分別finish()每個Activity,即達到完全退出功能。

雖然這種退出方式很好,但卻存在記憶體流失的隱患,所以,我們還需要再找更優的方案。這裡給出一個非常好的、實現超級簡單的方法,不需要通過什麼管理Activity,而是通過在Activity的啟動模式上做文章。

舉個例子!

比如:有一個應用一開啟首先進入A介面(引導介面)、再進入B介面(主介面)、然後進入C介面、進入D介面、進入E介面、進入F介面、再返回到B介面(主介面)、然後進入G介面、進入H介面,最後再返回到B介面(主介面),即流程為A->B->C->D->E->F->B->G->H->B。如果Activity是按預設的啟動模式,則在主介面B上點退出按鈕要退出整個app的話,則需要依次關閉B-H-G-B-F-E-D-C-B-A介面,然並卵......這誰也不願意這樣關閉啊。但是我們如果設定B介面(主介面):android:launchMode="singleTask",那麼啟動過程從A->B->C->D->E->F->B到B介面上時,這時候不會重新建立一個B介面,而是自動finish掉C、D、E、F介面後再使用原來那個B介面。然後再從B->G->H->B,也是會自動finish掉G、H介面而使用之前的B介面。所以,退出整個app應用也就只需退出介面A和介面B了,而A介面是引導介面,當從A進入B的時候就可以先finish掉A,然而,現在只需要在主介面B上finish自己就可以了。

輕輕鬆鬆完成整個App應用的退出!


著作權聲明:本文為博主原創文章,未經博主允許不得轉載。

優雅的App完全退出方案(沒有任何記憶體流失隱患)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.