用一種優雅的方式退出所有的Activity

acib3194 8年前發布 | 14K 次閱讀 Activity Android開發 移動開發

最近復習安卓的基礎知識,準備面試,發現以前榮哥說過的一種退出所有activity的方法,拿出來和大家分享以下。

在網絡上找了一下,關閉所有的activity的方式無非以下幾種:

①記錄每個打開的activity,退出的時候,關閉每個activity

②發送特定廣播,當應用程序需要關閉的時候關閉一個廣播告訴Activity,你該關閉了,在把發廣播的這個activity也干掉

③遞歸退出打開新的activity的時候使用startActivityforResult()方法,然后自己加標志,在onactivityResult中處理,遞歸退出

④ 也可以通過 intent 的 flag 來實現 intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)激活一個新的 activity。此時如果該任務棧中已經有該 Activity,那么系統會把這個 Activity 上面的所有的activity全部干掉。在干掉這個activity****

使用上面的方法要么不靠譜,要么有限制,要么不夠優雅,今天給大家介紹一種優雅的退出activty的方法

實現的步驟第一步:activity的四大啟動模式之一singleTask實現的基本思想是為第一個啟動的activity設置啟動模式android:launchMode="singleTask"

第二步:并且重寫下面的方法,并且在重寫的方法中關閉該Activity

@Override

protected voidonNewIntent(Intent intent) {

super.onNewIntent(intent);

finish();

}

第三步:在你需要關閉的activity中啟動該Activity你會驚訝的發現,應用完全退出了,你回到了界面。

這種方法和列舉的第4中方法的實現的原理基本相同,但是退出的時候,在設置singleTask的activity不會停頓,因此用戶的體驗更加好。代碼實現太容易了,就不發代碼了。

 

來自:http://www.jianshu.com/p/764f87af37a9

 

 本文由用戶 acib3194 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!