`
1320438999
  • 浏览: 122196 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

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

 
阅读更多

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

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>();   //用于存放每个Activity的List
    private static SysApplication instance;    //SysApplication实例   
   
    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() {    //遍历List,退出每一个Activity   
        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中添加下面代码,把每个创建的Activity添加到List中管理:

public void onCreate(Bundle savedInstanceState) {   
    super.onCreate(savedInstanceState);        
    SysApplication.getInstance().addActivity(this);   //创建Activity时,添加到List进行管理。
}  



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

SysApplication.getInstance().exit(); //调用退出方法

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics