问题描述:
1,有的时候我们需要退出完全退出自己应用程序, 印象中android 没有没有那个API直接可以完成这个操作。
解决办法:
其实就是我们就是退出我们在自己应用程序中打开的所有activity。然后我们只需要记录下我们在程序中打开的所有的activity,然后在需要退出所有应用的时候,只需要将所有的已经打开的activity 遍历 关闭就 行了。
怎么实现:
application 是全局 我们可以在application记录下已经打开的activity 提供两个方法 一个 添加已经打开的activity 一个 退出应用 下面 直接看代码吧
import java.util.LinkedList;
import java.util.List;
import android.app.Activity;
import android.app.Application;
import android.support.v4.app.FragmentActivity;
import android.support.v7.app.ActionBarActivity;
/**
* 完全退出 自己 应用程序
* @author cyl
*
* 2015-12-13
*/
public class ExitAppliation extends Application
{
//可以添加activity fragmentactivity actionbaractivity
private List<FragmentActivity> activityList = new LinkedList<FragmentActivity>();
private List<Activity> activities = new LinkedList<Activity>();
private List<ActionBarActivity> actionBarActivities = new LinkedList<ActionBarActivity>();
private static ExitAppliation instance;
// 单例模式中获取唯一的MyApplication实例
public static ExitAppliation getInstance()
{
if (null == instance)
{
instance = new ExitAppliation();
}
return instance;
}
//添加Activity到容器中
public void addActivity(FragmentActivity activity)
{
activityList.add(activity);
}
//添加Activity到容器中
public void addActivity(Activity activity)
{
activities.add(activity);
}
//添加Activity到容器中
public void addActivity(ActionBarActivity activity)
{
actionBarActivities.add(activity);
}
// 遍历所有Activity并finish
public void exit()
{
for (FragmentActivity activity : activityList)
{
activity.finish();
}
for (Activity activity : activities)
{
activity.finish();
}
for (ActionBarActivity activity : actionBarActivities)
{
activity.finish();
}
System.exit(0);
}
}
补充:
1,ExitApplication需要在 你的manifest.xml文件 配置一下,如果你有自己application 只需要将你的application 继承与这个 ExitApplication
2,在每个打开的activity中 使用ExitAppliation.getInstance().addActivity(this);
3,在需要关闭的地方调用 ExitAppliation.getInstance().exit();
ok ,就说到这里。