優雅的退出所有Activity

什么是優雅式呢?

  • 即Receiver + singleTask.我們知道Activity有四種加載模式,而singleTask就是其中的一種,使用這個模式之后,當startActivity時,他先回在當前棧中查詢是否存在Activity的實例,如果存在,則將其至于棧頂,并將其之上的所有Activity移除棧。我們打開一個app,首先是一個splash界面,然后會finish掉splash頁面。跳轉到主頁。然后會在主頁進行N次的跳轉,期間會產生數量不定的Activity,有的被銷毀,有的駐留在棧中,但是棧底永遠是我們的HomeActivity。這樣就讓問題變得簡單很多了。我們只需要兩步操作即可優雅的實現app的退出。

1.在HomeActivity注冊一個退出廣播,和第二個廣播是一樣,但是這里只需要在HomeActivity一個頁面注冊即可。
2.設置HomeActivity的啟動模式為singleTask

  • 當我們需要退出的時候只需要startActivity(this,HomeActivity,class),再發送一個退出廣播。上面代碼首先會把棧中HomeActivity之上的所有Activity移除棧,然后接到廣播finish自己。一切OK!沒有彈框,不用考慮機型Rom適配。不會有內存問題,就是那么的優雅,簡單。
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容