Android 怎么退出整个应用程序?__以及__按键事件捕获的问题?

1230人阅读 评论(4) 收藏 举报
  1.   
 
  1. 在开发Andorid程序的时候,难免会牵扯到退出整个应用程序的情况,怎么完全退出呢?请参阅下面的关键代码: 
在开发Andorid程序的时候,难免会牵扯到退出整个应用程序的情况,怎么完全退出呢?请参阅下面的关键代码:
  1.   
 
  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>();    
  11.     private static SysApplication instance;    
  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() {    
  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. }   
import java.util.LinkedList;   
import java.util.List;   
import Android.app.Activity;   
import Android.app.AlertDialog;   
import Android.app.Application;   
import Android.content.DialogInterface;   
import Android.content.Intent;   
   
public class SysApplication extends Application {   
    private List<Activity> mList = new LinkedList<Activity>();   
    private static SysApplication instance;   
   
    private SysApplication() {     
    }   
   
    public synchronized static SysApplication getInstance() {   
        if (null == instance) {   
            instance = new SysApplication();   
        }   
        return instance;   
    }   
   
    // add Activity    
    public void addActivity(Activity activity) {   
        mList.add(activity);   
    }   
   
    public void exit() {   
        try {   
            for (Activity activity : mList) {   
                if (activity != null)   
                    activity.finish();   
            }   
        } catch (Exception e) {   
            e.printStackTrace();   
        } finally {   
            System.exit(0);   
        }   
    }   
   
    @Override   
    public void onLowMemory() {   
        super.onLowMemory();       
        System.gc();   
    }   
   
}  

在每个Activity的onCreate方法中添加类似代码:

public void onCreate(Bundle savedInstanceState) {  
    super.onCreate(savedInstanceState);       
    SysApplication.getInstance().addActivity(this);  

在需要退出程序的时候,调用:

SysApplication.getInstance().exit(); 
简而言之,通过单例模式把每个Activity 的引用添加到一个全局链表中,每次退出程序调用System.exit(0)时,先调用链表中Activity 的finish方法。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值