Android 退出應(yīng)用程序的實(shí)現(xiàn)方法
Android 退出應(yīng)用程序的實(shí)現(xiàn)方法
android 退出應(yīng)用程序會(huì)調(diào)用android.os.Process.killProcess(android.os.Process.myPid())或是System.exit(0),這只是針對(duì)第一個(gè)Activity(也就是入口的Activity)時(shí)生效。如果有A,B,C三個(gè)Activity,而想在B 或C 中Activity 退出,調(diào)用上面的方法,往往會(huì)銷毀當(dāng)前的Activity 返回上一個(gè)Activity。當(dāng)然也可以逐個(gè)返回上一個(gè)Activity,直到跳轉(zhuǎn)到入口的Activity,最后退出應(yīng)用程
序。但這樣比較麻煩,而且逐個(gè)返回的體驗(yàn)并不友好。下面這種方法是寫(xiě)一個(gè)SysApplication 類,利用單例模式管理Activity,在每個(gè)在Activity 的onCreate()方法中調(diào)用ExitApplication.getInstance().addActivity(this)方法,在退出時(shí)調(diào)用ExitApplication.getInstance().exit()方法,就可以完全退出應(yīng)用程序了。
import java.util.LinkedList; import java.util.List; import android.app.Activity; import android.app.Application; public class SysApplication extends Application{ private List<Activity> mList = new LinkedList<Activity>(); private static SysApplication instance; private SysApplication() { } public synchronized static SysApplication getInstance() { if(null == instance) { instance = new SysApplication(); } return instance; } //add Activity public void addActivity(Activity activity) { mList.add(activity); } public void exit() { try{ for (Activity activity : mList) { if(activity != null) activity.finish(); } }catch (Exception e){ e.printStackTrace(); }finally{ System.exit(0); } } public void onLowMemory(){ super.onLowMemory(); System.gc(); } }
在每個(gè)activity 的onCreate中調(diào)用SysApplication.getInstance().addActivity(this);
然后在退出應(yīng)用的時(shí)候調(diào)用SysApplication.getInstance().exit();
感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!
- Android 安全退出應(yīng)用程序的方法總結(jié)
- Android中雙擊返回鍵退出應(yīng)用實(shí)例代碼
- Android Back鍵點(diǎn)擊兩次退出應(yīng)用詳解及實(shí)現(xiàn)方法總結(jié)
- Android實(shí)現(xiàn)點(diǎn)擊兩次BACK鍵退出應(yīng)用
- Android退出應(yīng)用最優(yōu)雅的方式(改進(jìn)版)
- Android完全退出應(yīng)用程序的方法
- Android實(shí)現(xiàn)長(zhǎng)按back鍵退出應(yīng)用程序的方法
- android 完全退出應(yīng)用程序?qū)崿F(xiàn)代碼
- Android 完全退出應(yīng)用程序的解決方法
相關(guān)文章
Android中Intent傳遞對(duì)象的兩種方法Serializable,Parcelable
這篇文章主要介紹了Android中的傳遞有兩個(gè)方法,一個(gè)是Serializable,另一個(gè)是Parcelable,對(duì)intent傳遞對(duì)象的兩種方法感興趣的朋友一起學(xué)習(xí)吧2016-01-01Android4.0.x Home鍵事件攔截監(jiān)聽(tīng)的方法
這篇文章主要介紹了Android4.0.x Home鍵事件攔截監(jiān)聽(tīng)的方法,對(duì)比分析了2.3.x的實(shí)現(xiàn)方法,分析了4.0.x實(shí)現(xiàn)Home鍵事件攔截監(jiān)聽(tīng)的相關(guān)技巧,需要的朋友可以參考下2016-02-02Android系統(tǒng)開(kāi)發(fā)中l(wèi)og的使用方法及簡(jiǎn)單的原理
LOG是廣泛使用的用來(lái)記錄程序執(zhí)行過(guò)程的機(jī)制,它既可以用于程序調(diào)試,也可以用于產(chǎn)品運(yùn)營(yíng)中的事件記錄;在平時(shí)開(kāi)發(fā)過(guò)程中經(jīng)常需要與log打交道,所以很有必要了解log的使用方法及簡(jiǎn)單的原理,感興趣的朋友可以了解下啊2013-01-01解決eclipse啟動(dòng)時(shí)報(bào)錯(cuò)Failed to create the Java Virtural Machine.問(wèn)題的
這篇文章主要介紹了解決eclipse啟動(dòng)時(shí)報(bào)Failed to create the Java Virtural Machine.問(wèn)題的方法,感興趣的小伙伴們可以參考一下2016-01-01Android Studio 3.6安裝全過(guò)程及AVD安裝運(yùn)行步驟詳解
這篇文章主要介紹了Android Studio 3.6安裝全過(guò)程及AVD安裝運(yùn)行步驟詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-03-03Android開(kāi)發(fā)實(shí)現(xiàn)從相冊(cè)中選擇照片功能詳解
這篇文章主要介紹了Android開(kāi)發(fā)實(shí)現(xiàn)從相冊(cè)中選擇照片功能,涉及Android權(quán)限控制、事件綁定、文件路徑與獲取等相關(guān)操作技巧,需要的朋友可以參考下2019-03-03Android PowerManagerService省電模式策略控制
這篇文章主要介紹了Android PowerManagerService省電模式策略控制,本文基于前兩篇文章的基礎(chǔ)介紹展開(kāi)詳情,感興趣的小伙伴可以參考一下2022-08-08Android浮動(dòng)窗口實(shí)現(xiàn)原理及代碼實(shí)例
這篇文章主要介紹了Android浮動(dòng)窗口實(shí)現(xiàn)原理及代碼實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-07-07Android搜索框(SearchView)的功能和用法詳解
這篇文章主要為大家詳細(xì)介紹了Android搜索框SearchView的功能和用法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-05-05