用一種優雅的方式退出所有的Activity
最近復習安卓的基礎知識,準備面試,發現以前榮哥說過的一種退出所有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