[ static broadcast receiver]

1. Activity 通过sendBroadcast()发送Intent数据

2. MyReceiver接收broadcast 所发送的Intent,并通过Intent提取参数

[ In Activity ]

在当前Activity类中,有如下代码片段,用于broadcast Intent

Intent intent = getIntent4Broadcast();
/*the same as *this.sendBroadcast(intent);*/
sendBroadcast(intent);public Intent getIntent4Broadcast(){Bundle b = new Bundle();b.putString("arg0","data1");Intent intent = new Intent();/* Receiver will filter the term * com.example.lab3.static_bc*/intent.setAction("com.example.lab3.static_bc");intent.putExtra("data", b);return intent;
}
[ Definite BroadcastReceiver ]

e.g. MyReceiver.java
extends BroadcastReceiver 重新定义onReceive接口

public class MyReceiver extends BroadcastReceiver{@Overridepublic void onReceive(Context context, Intent intent){Bundle b = intent.getBundleExtra("data");// do something with b}
}
[ Manifest.xml ]

静态定义的BroadcastReceiver
需要在Manifest中注册Receiver

<application......>......//MyReceiver 是receiver的类名<receiver android:name="MyReceiver" ><intent-filter><action android:name="com.example.lab3.static_bc" ></action></intent-filter></receiver>......</application>

[ dynamic broadcast receiver ]

1. 在Activity中定义Receiver和IntentFilter
2. 在onCreate中发送broadcast, 定义的Receiver处理broadcast
[ 在Activity中,定义BroadcastReceiver ]
    .../*definite inner class* 定义内部类 BroadcastReceiver*/public BroadcastReceiver bcr = new BroadcastReceiver(){  @Overridepublic void onReceive(Context context, Intent intent) {  //do something with intent  }};...
[ 在Activity中注册BroadcastReceiver ]

在哪个函数里register BroadcastReceiver,又在哪个函数里unregister呢?
参考:在发送broadcast之前,确保已经register了。
when click app-icon onCreate()->onStart()->onResume()
when click back_btn onPause()
可以在onStop()中写unregister, 在onCreate()和onStart()中register.

...
private IntentFilter filter = new IntentFilter();
...
//register receiver
filter.addAction("com.example.lab3.dynamic_bc");
registerReceiver(bcr, filter);
...
//unregister receiver
unregisterReceiver(bcr);
...
[ broadcast intent ]
Intent intent = initializeTheIntentForBroadcast();
sendBroadcast(intent)

静态定义的receiver接收broadcast intent相关推荐

  1. Android编程权威指南——broadcast intent

    文章目录 前言 一 普通 intent 和 broadcast intent 二 接收系统 broadcast:重启后唤醒 1 创建并登记 standalone receiver 2 使用 recei ...

  2. Android8.0 静态receiver接收不到隐式广播 Background execution not allowed: receiving Intent

    Android8.0的新特性值得注意一下,不然会出现很多莫名的问题... 后台执行限制 Android 8.0 为提高电池续航时间而引入的变更之一是,当您的应用进入已缓存状态时,如果没有活动的组件,系 ...

  3. broadcast receiver 接收设备重启意图( boot_completed Broadcast Intent)而重启定时器

    一.Intents 和Broadcast Intents区别 二.StartupReceiver public class StartupReceiver extends BroadcastRecei ...

  4. java.lang.RuntimeException: Error receiving broadcast Intent { act=android.net.wifi.SCAN_RESULTS flg

    E/AndroidRuntime: FATAL EXCEPTION: main Process: com.nokia.wlanapp, PID: 18526                   jav ...

  5. android 广播 event,无法接收android.intent.action.EVENT_REMINDER广播

    我想编写一个在发生日历提醒时触发的应用程序.我意识到没有正式记录的方法,但我在日志中看到,当我的日历闹钟在我的手机(Droid X)上关闭时,AlertReceiver表明它已收到android.in ...

  6. 基础问题:在一个 Activity 中定义的串口接收程序,如果 Activity 切换到其它 Activity 后还能接收到串口数据吗?...

    ====================问题描述==================== RT:基础问题:在一个 Activity 中定义的串口接收程序,如果 Activity 切换到其它 Activ ...

  7. 一个spark receiver 或多个spark receiver 接收 多个flume agent

    1. 利用一个spark receiver 接收多个flume agent String host = args[0];int port = Integer.parseInt(args[1]);Str ...

  8. 异常 java.lang.RuntimeException: Error receiving broadcast Intent

    异常 java.lang.RuntimeException: Error receiving broadcast Intent 参考文章: (1)异常 java.lang.RuntimeExcepti ...

  9. openresty做静态资源服务器(接收图片上传)

    分布式部署多服务部署,往往需要把图片单独分离出来,于是便想到了nginx的增强版openresty.nginx虽然可以作为静态资源服务器,接收图片上传.下载,但openresty作为nginx的升级版 ...

最新文章

  1. RocketMQ部署安装(非Docker安装)
  2. Everything Has Changed(HDU6354+圆交+求周长)
  3. Sublime Text for Mac 如何格式化代码
  4. NVDKC6416平台H.264算法优化
  5. 信息学奥赛一本通 1133:输出亲朋字符串 | OpenJudge NOI 1.7 05
  6. 超级详细的手写webpack4配置来启动vue2项目(附配置作用)
  7. java实例摘要(二)
  8. 免费素材下载:一套超棒的免费UI套件
  9. c# 程序调试出现“未在本地计算机上注册“Microsoft.Jet.OLEDB.4.0”提供程序。”...
  10. h5 兑换商品 页面模版_H5商城静态页面(模板)
  11. 微信公众号自定义分享踩坑
  12. 菜鸟带你使用JieCaoMediaPlayer播放本地视频
  13. 聚合收款码怎么推广?
  14. word段落每行首字怎么对齐_Word段落首行左右缩进及五种对齐方式
  15. linux vim go语言,CentOS7系统基于Vim8搭建Go语言开发环境
  16. java dataframe agg_Pandas对DataFrame单列/多列进行运算(map, apply, transform, agg)
  17. 过了MySQL 8 OCP(1Z0-908),交一下作业
  18. 美食推荐网站系统springboot+jsp
  19. rails console环境下显示AR sql
  20. [算法] 人工智能Java 坦克机器人系列

热门文章

  1. java面向对象练习题一
  2. Web前端-Vue.js必备框架(一)
  3. python OOP(2)
  4. mac配置jenkins遇到的问题及解决办法
  5. 记一次使用Dapper 进行的数据迁移和清洗工作
  6. 整合ssh model $$_javassist_13 cannot be cast to javassist.util.proxy.Proxy
  7. asp.net截取字符串方法
  8. Java集合框架之四大接口、常用实现类,java基础面试笔试题
  9. Python中append()与extend()的区别
  10. 《ArcGIS Runtime SDK for Android开发笔记》——问题集:如何解决ArcGIS Runtime SDK for Android中文标注无法显示的问题(转载)...