Android完全结束Activity并退出程序


个人认为此方法为史上最好的办法!

注意在使用Application的时候一定在application节点中添加一个名字属性,吧名字改成自己定义的application的名字 android:name=".MyApplication"
<application android:icon="@drawable/icon" android:label="@string/app_name"
android:name=".MyApplication">


关于完全退出Android程序,网上这方面的帖子很多,方法也很多这个方法思路很简单添加一个全局变量作为程序退出的标记(boolean类型),当需要退出程序时置为true,程序中每个Activity的onStart方法中对该变量进行判断,为true就结束自己。
使用Application来保存一个全局变量isProgramExit。(对Application使用不熟悉的话查看相关资料)
public class MyApplication extends Application {
// 程序退出标记
private static boolean isProgramExit = false;
public void setExit(boolean exit) {
isProgramExit= exit;
}

public boolean isExit() {
return isProgramExit;
}
}

在你退出时需要结束的每个 Activity 的 onStart 方法加上以下代码:
protected voidonStart() {
super.onStart();
MyApplication mApp = (MyApplication)getApplication();
if(mApp.isExit()) {
ma.setExit(false);//此句非常重要,此语句是自己添加,如果没有此语句,当程序在退出一次后就永远无法再启动了,因为application中的变量类似单例设计模式,无论在程序的什么地方改变了的值就会改变此值,一定要在最后一个退出的activity中加上此句话
finish();
}
}

比如,程序中有三个Activity,A —— B —— C;现在在C中有个按钮,点击退出整个程序。按照上面说的,在A和B的onStart方法中加入判断代码(C中可以不加),C中点击按钮时执行:
MyApplication mApp = (MyApplication)getApplication();
mApp.setExit(true);
finish();

这样C结束了自己,按照流程会回到B,然后B中会进行判断,因为退出条件满足,结束自己;再回到A,同样也结束……
可以看到,这种方法并不高明,甚至有些复杂,因为要在每个Activity的onStart中都加上判断。但不可否认的是这种方法却是绝对有效的,不管你的程序中Activity如何跳转来跳转去,只要一声令下,通通结束,屡试不爽。
所以,有遇到程序退出问题的朋友可以作为参考。

更多相关文章

  1. 开发Android应用程序与Eclipse第2部分
  2. Android signed APK程序正式签名方法详解
  3. [译] Android应用程序基础 >> 应用程序的组件(Application Compon
  4. Android Studio中获取sha1证书指纹数据的方法
  5. Android 虚拟机Dalvik、Android各种java包功能、Android相关文件
  6. Android内置应用到系统的方法总结
  7. 【Android】windows下使用android studio和ndk-build编译c程序生

随机推荐

  1. Android(安卓)MVP模式介绍和讲解
  2. Android(安卓)7.0及以上版本 使用fillder
  3. Android(安卓)Studio Emulator 提示 “/d
  4. Android(安卓)Studio 集成NDK 报错Error:
  5. Android系统模拟位置的使用方法
  6. android adb与sdcard
  7. 【Android】Gradle自动化构建工具的用法
  8. react native ——android返回键问题
  9. Material-Design
  10. Android(安卓)init进程一些容易忽视的技