關於完全退出Android程序,網上這方面的帖子很多,方法也很多。記得當時自己寫的第一個比較完整的項目的時候就遇上了這個問題,由於對Activity的生命周期了解不夠,又使用了TabActivity使得層次關系比較復雜,在程序中添加的“退出”菜單項經常無法完全退出,之後網上各種搜索,各種方法也試過了,什麼System.exit(0)啊,結束進程之類的啊,都依然無效果。
後面才發現的這個方法。思路也很簡單,回想自己當初為了解決這個問題時的苦苦尋覓,遂決定將其共享,供遇到此問題人士作為參考。
啰嗦夠了,上思路:添加一個全局變量作為程序退出的標記(boolean類型),當需要退出程序時置為true,程序中每個Activity的onStart方法中對該變量進行判斷,為true就結束自己。
使用Application來保存一個全局變量isProgramExit。(對Application使用不熟悉的話查看相關資料)
復制代碼 代碼如下:
public class MyApplication extendsApplication {
// 程序退出標記
private static boolean isProgramExit = false;
public void setExit(booleanexit) {
isProgramExit= exit;
}
public booleanisExit() {
return isProgramExit;
}
}
在你退出時需要結束的每個 Activity 的 onStart 方法加上以下代碼:
復制代碼 代碼如下:
protected voidonStart() {
super.onStart();
MyApplication mApp = (MyApplication)getApplication();
if(mApp.isExit()) {
finish();
}
}
這樣C結束了自己,按照流程會回到B,然後B中會進行判斷,因為退出條件滿足,結束自己;再回到A,同樣也結束……
可以看到,這種方法並不高明,甚至有些復雜,因為要在每個Activity的onStart中都加上判斷。但不可否認的是這種方法卻是絕對有效的,不管你的程序中Activity如何跳轉來跳轉去,只要一聲令下,通通結束,屢試不爽。
所以,有遇到程序退出問題的朋友可以作為參考。