android中推出使用比较有效率的方法
android中推出应用比较有效率的方法
添加一个全局变量作为程序退出的标记(boolean类型),当需要退出程序时置为true,程序中每个Activity的onStart方法中对该变量进行判断,为true就结束自己。
看代码吧:
使用Application来保存一个全局变量isProgramExit。(对Application使用不熟悉的话查看相关资料)
1 public class MyApplication extends Application {
2 // 程序退出标记
3 private static boolean isProgramExit = false;
4 public void setExit(boolean exit) {
5 isProgramExit = exit;
6 }
7 public boolean isExit() {
8 return isProgramExit;
9 }
10 }
2 // 程序退出标记
3 private static boolean isProgramExit = false;
4 public void setExit(boolean exit) {
5 isProgramExit = exit;
6 }
7 public boolean isExit() {
8 return isProgramExit;
9 }
10 }
在你退出时需要结束的每个Activity的 onStart方法加上以下代码:
1 protected void onStart() {
2 super.onStart();
3 MyApplication mApp = (MyApplication)getApplication();
4 if (mApp.isExit()) {
5 finish();
6 }
7 }
2 super.onStart();
3 MyApplication mApp = (MyApplication)getApplication();
4 if (mApp.isExit()) {
5 finish();
6 }
7 }
比如,程序中有三个Activity,A —— B —— C;现在在C中有个按钮,点击退出整个程序。按照上面说的,在A和B的onStart方法中加入判断代码(C中可以不加),C中点击按钮时执行:
1 MyApplication mApp = (MyApplication)getApplication();
2 mApp.setExit(true);
3 finish();
2 mApp.setExit(true);
3 finish();
这样C结束了自己,按照流程会回到B,然后B中会进行判断,因为退出条件满足,结束自己;再回到A,同样也结束…… 可以看到,这种方法并不高明,甚至有些复杂,因为要在每个Activity的onStart中都加上判断。但不可否认的是这种方法却是绝对有效的,不管你的程序中Activity如何跳转来跳转去,只要一声令下,通通结束,屡试不爽。所以,有遇到程序退出问题的朋友可以作为参考。