ANDROID 完美退出APP的實(shí)例代碼
更新時(shí)間:2013年08月19日 14:51:54 作者:
這篇文章介紹了ANDROID 完美退出APP的實(shí)例代碼,有需要的朋友可以參考一下
大家都知道 Android 的 Activity 是存著歷史棧的,比如從 A -> B -> C,C 完成 finish 后回到 B,把所有的Activity 都 finish了,程序就自然退出了。 當(dāng)然在 finish 的同時(shí)也需要是否自己程序的其他資源。所以需要想個(gè)辦法把 Activity 給存起來(lái)。然后在程序退出的地方調(diào)用它們的 finish()方法。
使用全局變量。對(duì)了,第一個(gè)想到的就是繼承 Application,代碼入下:
public class AgentApplication extends Application {
private List<Activity> activities = new ArrayList<Activity>();
public void addActivity(Activity activity) {
activities.add(activity);
}
@Override
public void onTerminate() {
super.onTerminate();
for (Activity activity : activities) {
activity.finish();
}
onDestroy();
System.exit(0);
}
}
然后在 Activity onCreate 的時(shí)候來(lái)調(diào)用 addActivity (),有人可能想到這個(gè)Application需要在所有的 Activity onCreate的時(shí)候都使用,需要做一個(gè)單例實(shí)例。其實(shí)根本不需要。在 Activity 中使用 this.getApplication() 就可以了。
最后在你需要推出程序的地方調(diào)用 application.onTerminate() 就可以了。記?。簊uper.onTerminate() 必須調(diào)用,代碼中的 onDestroy()是我自己的釋放其他資源的方法,不是系統(tǒng)的。
運(yùn)行以上代碼后,在LogCat 中會(huì)出現(xiàn)一行提示:
Process 包名 (pid xxxxx) has died. 證明你的程序退出了。
使用全局變量。對(duì)了,第一個(gè)想到的就是繼承 Application,代碼入下:
復(fù)制代碼 代碼如下:
public class AgentApplication extends Application {
private List<Activity> activities = new ArrayList<Activity>();
public void addActivity(Activity activity) {
activities.add(activity);
}
@Override
public void onTerminate() {
super.onTerminate();
for (Activity activity : activities) {
activity.finish();
}
onDestroy();
System.exit(0);
}
}
然后在 Activity onCreate 的時(shí)候來(lái)調(diào)用 addActivity (),有人可能想到這個(gè)Application需要在所有的 Activity onCreate的時(shí)候都使用,需要做一個(gè)單例實(shí)例。其實(shí)根本不需要。在 Activity 中使用 this.getApplication() 就可以了。
最后在你需要推出程序的地方調(diào)用 application.onTerminate() 就可以了。記?。簊uper.onTerminate() 必須調(diào)用,代碼中的 onDestroy()是我自己的釋放其他資源的方法,不是系統(tǒng)的。
運(yùn)行以上代碼后,在LogCat 中會(huì)出現(xiàn)一行提示:
Process 包名 (pid xxxxx) has died. 證明你的程序退出了。
相關(guān)文章
Android Studio使用Profiler來(lái)完成內(nèi)存泄漏的定位
這篇文章主要介紹了Android Studio使用Profiler來(lái)完成內(nèi)存泄漏的定位,幫助大家更好的理解和學(xué)習(xí)使用Android,感興趣的朋友可以了解下2021-03-03淺析Android Service中實(shí)現(xiàn)彈出對(duì)話(huà)框的坑
這篇文章主要介紹了Android Service中實(shí)現(xiàn)彈出對(duì)話(huà)框的坑,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-04-04Android實(shí)現(xiàn)下載進(jìn)度條效果
vivo商店在下載應(yīng)用的時(shí)候,底部有一個(gè)圓角矩形的下載進(jìn)度條,中間有一個(gè)進(jìn)度文字,而且進(jìn)度和文字交匯的時(shí)候,交匯部分的文字會(huì)從藍(lán)色邊為白色,會(huì)有一種一半白色字,一半藍(lán)色字的效果。本文將仿照該樣式實(shí)現(xiàn)一個(gè)2021-06-06Android評(píng)分控件RatingBar使用實(shí)例解析
這篇文章主要為大家詳細(xì)介紹了Android評(píng)分控件RatingBar使用實(shí)例,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-10-10android Retrofit2+okHttp3使用總結(jié)
本篇文章主要介紹了android Retrofit2+okHttp3使用總結(jié),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-04-04Android利用Gson解析嵌套多層的Json的簡(jiǎn)單方法
下面小編就為大家?guī)?lái)一篇Android利用Gson解析嵌套多層的Json的簡(jiǎn)單方法。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-08-08Android Touch事件分發(fā)過(guò)程詳解
這篇文章主要介紹了Android Touch事件分發(fā)過(guò)程,詳細(xì)描述了Android Touch事件的主要處理流程,有助于深入理解Android程序設(shè)計(jì),需要的朋友可以參考下2014-09-09