android使用广播退出应用程序

由于在(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了。

时间: 2024-12-28 18:40:14

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

android 利用广播实现程序的强制退出

利用广播机制,实现程序的强制退出. 前面有篇博文,写到了一键退出,这里利用到了那里的ActivityCollector的集合和BaseActivity 功能:打开程序后,先登录,登录成功后,进入主页面,主页面有个按钮,点击后弹出窗口,用户点击 "是"之后退出程序 1.ActivityCollector package com.yuanlp.forceexit; /**  * Created by 原立鹏 on 2017/6/28.  */ import android.app.Acti

一、 Android完全退出应用程序

在Android中,如果想退出Android程序,一般都是调用finish().System.exit(0).android.os.Process.killProcess(android.os.Process.myPid())等方法来实现退出程序功能,可是在实际开发中,并不能达到完全退出应用程序的效果,这是因为调用finish().System.exit(0).android.os.Process.killProcess(android.os.Process.myPid())只能杀死当前的act

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

原文网址:http://www.yoyong.com/archives/199 android退出应用程序会调用android.os.Process.killProcess(android.os.Process.myPid())或是System.exit(0),这只是针对第一个Activity(也就是入口的Activity)时生效.如果有A,B,C三个Activity,而想在B或C中Activity退出,调用上面的方法,往往会销毁当前的Activity返回上一个Activity.当然也可以逐个返

Android 使用单例模式退出整个应用程序(转)

转:http://blog.csdn.net/sunnyfans/article/details/7688092 我们在写android应用程序时,经常会遇到想退出当前Acitivity,或者直接退出应用程序.我之前的一般操作是按返回键,或者直接按home键直接返回,其实这两种操作都没有关闭当前应用程序,没有释放系统资源.有时跳转的activity较多时,还需要多次按返回键,这样感觉一点都不爽. 后面添加了一个菜单返回功能键,这个方法也只能用system.exit(0)来关闭当前活动的Activ

Android 按二次后退键退出应用程序

前言 欢迎大家我分享和推荐好用的代码段~~ 声明          欢迎转载,但请保留文章原始出处: CSDN:http://www.csdn.net 雨季o莫忧离:http://blog.csdn.net/luckkof 正文 <span style="font-size:10px;">private static Boolean isExit = false; private static Boolean hasTask = false; Timer tExit = n

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

最近公司工作不是很忙,就抽空研究了下Android的引导页,但是在写完引导页并且进入到住页面之后,在退出时,采用"再按一次退出"的方式去实现的,用的方式是杀掉进程跟exit,即:android.os.Process.killProcess(android.os.Process.myPid())或者System.exit(0); 但是问题出现了,因为我在进入引导页Activity跟主界面Activity之前我是还有一个欢迎页Activity的(注:这个入口Activity的作用是判断此应

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

android 安全退出应用程序的几种方法 正常关闭应用程序: 当应用不再使用时,通常需要关闭应用,可以使用以下三种方法关闭android应用: 第一种方法:首先获取当前进程的id,然后杀死该进程.android.os.Process.killProcess(android.os.Process.myPid())通过这种方式不能将应用程序完全杀死,并且他不会把当前应用应用的Activity的task任务栈清空 第二种方法:终止当前正在运行的Java虚拟机,导致程序终止System.exit(0)

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

如何干净彻底地退出Android应用程序,是很多开发者的心头痒.如何干净地关闭所有已打开的Activity? 如何关闭指定的Activity? 如何关闭一类Activity? 这里,我们提出一种通过实现对Application的扩展,实现了一种高效管理Activity,实现Android干净彻底地退出应用程序. 首先,我们将管理Activity的功能通过一个扩展的Application类来实现. public class MyApplication extends Application { p

Android 完全退出应用程序

随着业务逻辑越来越复杂,退出应用程序也不像之前那个直接将Activity finish()掉就可以了,在网上看到很多完全退出App的文章,但是实践之后发现,并不像文章中描述的那样,不是方法过时了,就是在某些SDk版本下不好用, 最后经过多次实践,找到两种方法可以完美解决现在业务需要的完全退出App的方法: 方法一: 1.将LoginActivity的launcMode设置成singleTask,然后让它始终占据栈底的位置,其他操作需要退回到LoginActivity时,只需要调用Actvity的