如何完全退出单例模式下的android应用程序,非常好用

首先问题是这样的,比如:我刚进入应用时有一个欢迎页面(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);即可。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值