如何完全退出单例模式下的android应用程序,非常好用
16lz
2021-01-26
首先问题是这样的,比如:我刚进入应用时有一个欢迎页面(E),随后进入主A,我从A->B->C->D,然后直接从D返回到A,在A中完全退出应用。对于android自带的1.5 - 2.1以及2.2之后完全退出应用的API我都试了,但还是实现不了,有的是能退出,但是欢迎页面就没有了,可能是我的原因。后来我是这样实现的,当然有点老土,但还是能实现的。如下,同样也欢迎拍砖
public class ExitApplication extends Application {//存储已打开的Activity集合
private List<Activity> list = new ArrayList<Activity>();
//单例的ExitApplication,目的是在任何的Activity中用的都是同一个集合
private static ExitApplication ea;
private ExitApplication(){
}
public static ExitApplication getInstance(){
if(null==ea){
ea = new ExitApplication();
}
return ea;
}
/**
* 添加Activity到集合中
*/
public void addActivity(Activity activity){
list.add(activity);
}
public void exit(Context context){
Dialog dialog = new AlertDialog.Builder(context).setTitle("确认退出")
.setMessage("确定退出该系统?")
.setPositiveButton("确定",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,
int which) {
for(Activity activity:list){
activity.finish();
}
System.exit(0);
}
}).setNegativeButton("取消",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,
int whichButton) {
}
}).create();
dialog.show();
}
}
我这个必须是单例的,因为我要确保把每个UI都加进一个集合中,所以...,至于对单例有疑问的,可以上网查询,
然后在每个Activity的onCreate方法中调用ExitApplication.getInstance().addActivity(this);,然后在处理退出请求中直接调用ExitApplication.getInstance().exit(this);即可。
更多相关文章
- Android(安卓)tv 动画效果faq (放大动画 与ScrollView滚动照成 页
- Android实现左右滑动指引效果(使用ViewPager)
- 应用跳转(Deep Link)
- Android中应用锁的实现之账号盗取
- .net开发者对android第二周的学习体会
- 详解Android中那些酷炫返回方式的实现
- Android各种好看吐司设计
- 写了一个不太成功的“流氓”app~
- Android卸载程序之后跳转到指定的反馈页面