发送广播广播avtivity

原创 2018年01月13日 14:57:50
定义一个广播类 :
public class BaseActivity extends Activity {
    //根据需求定义自己需要关闭页面的action
    public static final String RECEIVER_ACTION_FINISH_A = "receiver_action_finish_a";
    public static final String RECEIVER_ACTION_FINISH_B = "receiver_action_finish_b";
    public static final String RECEIVER_ACTION_FINISH_C = "receiver_action_finish_c";
    public static final String RECEIVER_ACTION_FINISH_D = "receiver_action_finish_d";

    private FinishActivityRecevier mRecevier;

    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        mRecevier = new FinishActivityRecevier();
        registerFinishReciver();
    }

    private void registerFinishReciver() {
        IntentFilter intentFilter = new IntentFilter();
        intentFilter.addAction(RECEIVER_ACTION_FINISH_A);
        intentFilter.addAction(RECEIVER_ACTION_FINISH_B);
        intentFilter.addAction(RECEIVER_ACTION_FINISH_C);
        intentFilter.addAction(RECEIVER_ACTION_FINISH_D);
        registerReceiver(mRecevier, intentFilter);
    }

    private class FinishActivityRecevier extends BroadcastReceiver {
        @Override
        public void onReceive(Context context, Intent intent) {
            //根据需求添加自己需要关闭页面的action
            if (RECEIVER_ACTION_FINISH_A.equals(intent.getAction()) ||
                    RECEIVER_ACTION_FINISH_B.equals(intent.getAction()) ||
                    RECEIVER_ACTION_FINISH_C.equals(intent.getAction()) ||
                    RECEIVER_ACTION_FINISH_D.equals(intent.getAction())) {
                BaseActivity.this.finish();
            }
        }
    }

    @Override
    protected void onDestroy() {
        if (mRecevier != null) {
            unregisterReceiver(mRecevier);
        }
        super.onDestroy();
    }
}
在需要关闭的activity继承  BaseActivity
在需要关闭的地方调用下面这句
//通知所以界面关闭自己
BroadcastUtils.sendFinishActivityBroadcast(this);


public class BroadcastUtils {
    /**
     * 发送finish页面的广播
     * action可以自己根据需要添加
     *
     * @param context
     */
    public static void sendFinishActivityBroadcast(Context context) {
        Intent intent = new Intent(BaseActivity.RECEIVER_ACTION_FINISH_B);
        context.sendBroadcast(intent);
        intent = new Intent(BaseActivity.RECEIVER_ACTION_FINISH_C);
        context.sendBroadcast(intent);
    }
}
版权声明:本文为博主原创文章,未经博主允许不得转载。

android中以自定义广播的形式销毁栈中的任意的Activity

在做项目的时候,很多时候我们会因为需求的原因去销毁不在栈顶中的Activity,实现不同的跳转逻辑。今天我们就一起来学习一下如何用自定义的广播来实现销毁处于栈中但不是栈顶的Activity。首先我先新...
  • linzhaowan
  • linzhaowan
  • 2016年08月24日 12:55
  • 1292

Android Handler内存泄露分析

用lint对Android代码进行扫描时,有这样一个关于Handler的警告信息:This Handler class should be static or leaks might occur。产生...
  • goodlixueyong
  • goodlixueyong
  • 2016年02月19日 23:02
  • 980

Android--Handler的内存泄漏原因及解决方法

一、如何造成内存泄漏: 1、主线程的Looper对象会伴随该应用程序的整个生命周期 2、Java里,非静态内部类和匿名类都会潜在引用它们所属的外部类 发送的延迟空消息(EmptyMessageD...
  • chaoyu168
  • chaoyu168
  • 2018年01月10日 15:59
  • 37

一次性退出所有avtivity

1.检测当前版本的信息AndroidManifest.xml-->manifest-->android:versionName。 2.从服务器获取版本号(版本号存在于xml文件中)并与当前检测到的版...
  • fengyun309634472
  • fengyun309634472
  • 2015年01月25日 23:18
  • 273

Avtivity 知识点,不断更新中

Avtivity 知识点,不断更新中一、Activity是什么 ?二、Activity 生命周期三、Activity 启动方式(android:launchMode) standard 标准模式 ...
  • zhuxuliao
  • zhuxuliao
  • 2016年05月07日 08:14
  • 739

广播 有序和无序的区别 本地和全局的区别

http://h529820165.iteye.com/blog/1656778 普通广播(Normal Broadcast): 一,优缺点:和有序广播的优缺点相反! 二,发送广播的方法:s...
  • u012221046
  • u012221046
  • 2016年09月20日 21:17
  • 1201

静态广播和动态广播的区别

静态广播和动态广播的区别在Android中广播有两种实现方式: static broadcast dynamic broadcast 两种广播有如下区别: 生存期,静态广播的生存期可以比动态广播的长很...
  • u012925008
  • u012925008
  • 2015年11月14日 18:55
  • 5227

本地广播LocalBroadcastManager,和全局广播有什么区别

-------------------------------------------我们平常使用的一般都是全局广播,这个不用多说: private ReceiveBroadCast recei...
  • oLevin
  • oLevin
  • 2016年07月22日 12:29
  • 5526

说说Android的广播(1) - 普通广播,有序广播和粘性广播

对于Activity的启动流程,我们已经有了几个版本的分析了。这里我们分析一个更容易一些的,四大组件中最简单的Broadcast Receiver。关于Broadcast,有几点需要了解。首先是广播的...
  • lusing
  • lusing
  • 2016年06月08日 16:45
  • 2680

动态广播和静态广播的区别:

1.动态注册广播不是常驻型广播,也就是说广播跟随activity的生命周期。注意: 在activity结束前,移除广播接收器。  静态注册是常驻型,也就是说当应用程序关闭后,如果有信息广播来,程序...
  • qq_35823924
  • qq_35823924
  • 2016年08月09日 08:20
  • 943
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:发送广播广播avtivity
举报原因:
原因补充:

(最多只允许输入30个字)