Android Activity 完全结束并退出程序的实例
程序员文章站
2023-11-18 12:12:04
关于完全退出android程序,网上这方面的帖子很多,方法也很多。记得当时自己写的第一个比较完整的项目的时候就遇上了这个问题,由于对activity的生命周期了解不够,又使...
关于完全退出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如何跳转来跳转去,只要一声令下,通通结束,屡试不爽。
所以,有遇到程序退出问题的朋友可以作为参考。
后面才发现的这个方法。思路也很简单,回想自己当初为了解决这个问题时的苦苦寻觅,遂决定将其共享,供遇到此问题人士作为参考。
啰嗦够了,上思路:添加一个全局变量作为程序退出的标记(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如何跳转来跳转去,只要一声令下,通通结束,屡试不爽。
所以,有遇到程序退出问题的朋友可以作为参考。
上一篇: 3Dmax怎么给小鱼添加摆动动画效果?
下一篇: js实现继承的方法及优缺点总结