您当前的位置:首页 > 建站知识 > 编程知识

android 完全退出应用

发布时间: 2013-09-05 │ 浏览:3242 

首先纠正一些网上的说法:
1、finish();

2、System.exit(0);

3、android.os.Process.killProcess(android.os.Process.myPid());

4、intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);

以上4种方法只能关闭当前Activity,并不能真正关掉整个应用。

这里给出一个实用方法,思路是:写一个类,利用单例模式管理Activity,在每个Activity 的onCreate()时压,在想关闭时遍历栈,把加进来的Activity一一关掉,这样就达到了完全关闭应用的目的。代码如下:


新建一个类:

package com.workneed.app;

import java.util.LinkedList;
import java.util.List;

import android.app.Activity;
import android.app.Application;

public class CloseApplication extends Application {

private List<Activity> activityList = new LinkedList<Activity>(); 
private static CloseApplication instance;

private CloseApplication()
{
}

public static CloseApplication getInstance()
{
if(null == instance)
{
instance = new CloseApplication();
}
return instance; 

}

public void addActivity(Activity activity)
{
activityList.add(activity);
}

public void close()
{

for(Activity activity:activityList)
{
activity.finish();
}

System.exit(0);

}
}



然后在每个Activity的onCreate事件中加这句:


CloseApplication.getInstance().addActivity(this);

想要退出的地方加这句:

CloseApplication.getInstance().close();