由于在(Widget或Service、BroadcastReceiver中)使用startActivity()方法启动activity时需使用FLAG_ACTIVITY_NEW_TASK flag,所以在BaseActivity中使用setresult标记退出时不能完全退出应用程序(只能关闭通过广播打开的activity以及之后打开的activity)。

  因此本文设计使用广播退出应用程序:

1、在退出事件中发送退出广播

Intent intent = new Intent();
intent.setAction("com.android.exitapp");
baseActivity.sendBroadcast(intent);

2、在BaseActivity中注册广播

private BroadcastReceiver broadcastReceiver = new BroadcastReceiver() {

  @Override
  public void onReceive(Context context, Intent intent) {
    // TODO Auto-generated method stub
    if (intent.getAction().equals("com.android.exitapp")) {
      finish();
    }
  }
};

@Override
protected void onResume() {
  // TODO Auto-generated method stub
  super.onResume();
  IntentFilter filter = new IntentFilter();
  filter.addAction(SystemConst.EXIT_APP);
  this.registerReceiver(this.broadcastReceiver, filter);
}

通过此法就可以退出所有activity了。

android使用广播退出应用程序的更多相关文章

  1. Android基础之退出应用程序Demo

    对于Android我也不是很熟悉,只是学习一些基本内容就OK.所以写的内容也很简单.本Demo要实现的效果就是双击返回键弹出提示框确认是否退出程序. 一.废话少说直接上代码.至于涉及到的相关包在Ecl ...

  2. [Android设计模式]Android退出应用程序终极方法

    如何干净彻底地退出Android应用程序,是很多开发者的心头痒.如何干净地关闭所有已打开的Activity? 如何关闭指定的Activity? 如何关闭一类Activity? 这里,我们提出一种通过实 ...

  3. android 完全退出应用程序(重要)

    android退出应用程序会调用android.os.Process.killProcess(android.os.Process.myPid())或是System.exit(0),这只是针对第一个A ...

  4. android完全退出应用程序

    android 完全退出应用程序android android 退出应用程序, 单例模式管理Activity引自:http://www.yoyong.com/archives/199android 退 ...

  5. android 提示用户是否退出应用程序 提升用户体验

    首先明确一点,用户的一直点击的返回键,之后就会退出到桌面.那么,如何提示呢?很简单,在用户一顿返回键回到程序入口处(即程序的第一个Activity)给用户一个提示,您再按可就退出程序啦?那么如何在程序 ...

  6. Android完全退出应用程序,完美解决方案

    最近公司工作不是很忙,就抽空研究了下Android的引导页,但是在写完引导页并且进入到住页面之后,在退出时,采用"再按一次退出"的方式去实现的,用的方式是杀掉进程跟exit,即:a ...

  7. 【转】android 完全退出应用程序

    原文网址:http://www.yoyong.com/archives/199 android退出应用程序会调用android.os.Process.killProcess(android.os.Pr ...

  8. android 安全退出应用程序的几种方法

    android 安全退出应用程序的几种方法 正常关闭应用程序: 当应用不再使用时,通常需要关闭应用,可以使用以下三种方法关闭android应用: 第一种方法:首先获取当前进程的id,然后杀死该进程.a ...

  9. Android利用广播监听设备安装和卸载应用程序

    MainActivity如下: package cn.testappaddandremove; import android.os.Bundle; import android.app.Activit ...

随机推荐

  1. Visual Studio 2012 Professional 密钥

    Visual Studio 2012 Professional 密钥 4D974-9QX42-9Y43G-YJ7JG-JDYBP

  2. ACM2032

    杨辉三角 Problem Description 还记得中学时候学过的杨辉三角吗?具体的定义这里不再描述,你可以参考以下的图形:11 11 2 11 3 3 11 4 6 4 11 5 10 10 5 ...

  3. HDOJ-ACM1023(JAVA)

    题意:输入栈的大小,输出可能的出栈顺序的个数. 这道题,如果做了1022,那就只要在上面改改就行了, 第一想法是加上全排列-----结果是正确的,但是绝对会超时 验证性的实现了:(Time Limit ...

  4. aix 扩展文件系统

    今天发现公司的oracle测试 数据库不能启动,检查警告日志日志,提示归档空间不足,不能归档,于是扩展文件系统: 1.检查rootvg卷组的剩余空间[p2704u]:[/dsg/oracle11]$ ...

  5. A Tour of Go Pointers

    Go has pointers, but no pointer arithmetic. Struct fields can be accessed through a struct pointer. ...

  6. python 实战

    用Python写一个真正的Web App! 目标 我们设定的实战目标是一个Blog网站,包含日志.用户和评论3大部分. 比如webpy.org上就提供了一个Blog的例子,目测也就100行代码. 我们 ...

  7. PHP使用IP地址连接MySQL数据库

    我们通常测试的时候都是用mysql_connect("localhost","usrname","password");的方式来连接MySQ ...

  8. CSS- 兼容样式记录

    前面加* 或者_,不是CSS的正常写法,而是利用IE的解析BUG,从而实现所需要的效果.应尽量避免使用吧.* margin-left:32px; /*所有浏览器*/*margin-left:32px; ...

  9. 在DDMS中访问data目录

    转自 http://blog.csdn.net/catoop/article/details/7584746 由于某些原因,需要通过eclipse访问/data/下的文件. 打开eclipse-DDM ...

  10. Android - TextView Ellipsize属性

    Android - TextView Ellipsize属性 本文地址: http://blog.csdn.net/caroline_wendy android:ellipsize属性: If set ...