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

Android退出多个Activity的两个经典方法

2016-04-28 13:14 573 查看

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方法中添加类似代码:

[java] public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

SysApplication.getInstance().addActivity(this);

}

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

SysApplication.getInstance().addActivity(this);

}

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

SysApplication.getInstance().exit();

SysApplication.getInstance().exit();

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

附:此方法也可参考链接:http://maosidiaoxian.iteye.com/blog/1404725

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: