Android之退出整个应用方法之一

  在Android应用开发中,难免会遇到需要完全退出整个应用的时候,我在网上也看了一下,感觉通过广播是个很好的方法,在这里,我用了另外一个方法,简而言之,通过单例模式把每个Activity 的引用添加到一个全局链表中,每次退出程序调用System.exit(0)时,先调用链表中Activity 的finish方法。直接上代码:

[java]  view plain  copy
  1. import java.util.LinkedList;     
  2. import java.util.List;     
  3. import Android.app.Activity;     
  4. import Android.app.AlertDialog;     
  5. import Android.app.Application;     
  6. import Android.content.DialogInterface;     
  7. import Android.content.Intent;     
  8.      
  9. public class SysApplication extends Application {     
  10.     private List<Activity> mList = new LinkedList<Activity>();   //用于存放每个Activity的List  
  11.     private static SysApplication instance;    //SysApplication实例     
  12.      
  13.     private SysApplication() {     //私有构造器,防止外面实例化该对象,  
  14.     }     
  15.      
  16.     public synchronized static SysApplication getInstance() {   //通过一个方法给外面提供实例  
  17.         if (null == instance) {     
  18.             instance = new SysApplication();     
  19.         }     
  20.         return instance;     
  21.     }     
  22.      
  23.     // add Activity      
  24.     public void addActivity(Activity activity) {     
  25.         mList.add(activity);     
  26.     }     
  27.      
  28.     public void exit() {    //遍历List,退出每一个Activity     
  29.         try {     
  30.             for (Activity activity : mList) {     
  31.                 if (activity != null)     
  32.                     activity.finish();     
  33.             }     
  34.         } catch (Exception e) {     
  35.             e.printStackTrace();     
  36.         } finally {     
  37.             System.exit(0);     
  38.         }     
  39.     }     
  40.      
  41.     @Override     
  42.     public void onLowMemory() {     
  43.         super.onLowMemory();         
  44.         System.gc();   //告诉系统回收  
  45.     }     
  46.      
  47. }    


在每个Activity的onCreate中添加下面代码,把每个创建的Activity添加到List中管理:

[java]  view plain  copy
  1. public void onCreate(Bundle savedInstanceState) {     
  2.     super.onCreate(savedInstanceState);          
  3.     SysApplication.getInstance().addActivity(this);   //创建Activity时,添加到List进行管理。  
  4. }    



在我们需要退出程序的时候执行下面代码:

[java]  view plain  copy
  1. SysApplication.getInstance().exit(); //调用退出方法  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值