首先纠正一些网上的说法:
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);
}
}
CloseApplication.getInstance().addActivity(this);
想要退出的地方加这句:
CloseApplication.getInstance().close();