您的位置:首页 > 移动开发 > Android开发

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

2014-05-22 17:42 309 查看
http://blog.csdn.net/way_ping_li/article/details/7978402

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

[java]
view plaincopy

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中管理:

[java]
view plaincopy

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

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

[java]
view plaincopy

SysApplication.getInstance().exit(); //调用退出方法 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: