转载自:http://www.cnblogs.com/qingblog/archive/2012/06/08/2541790.html

Android 退出应用程序会调用android.os.Process.killProcess(android.os.Process.myPid())或是System.exit(0),这只是针对第一个Activity(也就是入口的Activity)时生效。如果有A,B,C三个Activity,而想在B 或C 中Activity 退出,调用上面的方法,往往会销毁当前的Activity 返回上一个Activity。当然也可以逐个返回上一个Activity,直到跳转到入口的Activity,最后退出应用程序。但这样比较麻烦,而且逐个返回的体验并不友好。


网上比较流行的方法是定义栈,写一个ExitApplication 类,利用单例模式管理Activity,在每个在Activity 的onCreate()方法中调用ExitApplication.getInstance().addActivity(this)方法,在退出时调用ExitApplication.getInstance().exit()方法,就可以完全退出应用程序了。

ExitApplication 类代码如下:

package .......utils;

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

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

public class ExitApplication extends Application
{

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

  private volatile static ExitApplication instance;

  private ExitApplication()
  {

  }

  // 单例模式中获取唯一的ExitApplication 实例

  public static ExitApplication getInstance()
  {
    if (null == instance)
    {
       synchronized(ExitApplication.class)

      {
        if(null == instance)
        {
          instance = new ExitApplication();
        }
      }

    }
    return instance;

  }

  // 添加Activity 到容器中
  public void addActivity(Activity activity)
  {
    activityList.add(activity);
  }

  // 遍历所有Activity 并finish
  public void exit()
  {
    for (Activity activity : activityList)
    {
      activity.finish();
    }
    System.exit(0);
  }
}

更多相关文章

  1. 浅谈Java中Collections.sort对List排序的两种方法
  2. Python list sort方法的具体使用
  3. python list.sort()根据多个关键字排序的方法实现
  4. MVP -----个人理解与示例(android例子 实现)
  5. android工程下轻松运行java main程序
  6. Android(安卓)代码混淆 选项说明
  7. android中调用金山词霸
  8. Android(安卓)获取控件宽高的3种方法
  9. Android中创建与几种解析xml的方法!

随机推荐

  1. android:layout_weight 属性对于组件长度
  2. Android获取当前网络状态
  3. Android清单文件属性大全
  4. Android:控件AutoCompleteTextView 自动提
  5. android webview web里面的数据透传到jav
  6. android 读取SQLite android could not o
  7. android 版本更新
  8. android 打开各种文件(setDataAndType)
  9. 自定义TabActivity,TabActivity的美化
  10. Android 保活后台启动Service 8.0踩坑记