Android中BroadcastReceiver使用总结

简介:

Android中BroadcastReceiver使用分为动态注册BroastcastReceiver ,静态注册BroastcastReceiver

1、动态注册BroastcastReceiver

定义BroadcastReceiver:

        private  BroadcastReceiver bcr1 = new  BroadcastReceiver() {
    @Override
    public  void  onReceive(Context context, Intent intent) {
        // TODO Auto-generated method stub
         String action = intent.getAction(); 
         Toast.makeText(context, "动态:" +action, 1000 ).show(); 
        
   
};

 注册registerReceiver(bcr1, new IntentFilter(ACTION_1));代码如下。关键代码是注册代码registerReceiver(bcr1, new IntentFilter(ACTION_1)),其他是一些简单的按钮, 及绑定的Click事件。

Button btn1,btn2,btn3; 
  static  final  String ACTION_1 = "com.example.broadcastreceiverdemo.ACTION_1"
  static  final  String ACTION_2 = "com.example.broadcastreceiverdemo.ACTION_2"
  static  final  String ACTION_3 = "com.example.broadcastreceiverdemo.ACTION_3"
 
@Override
protected  void  onCreate(Bundle savedInstanceState) {
     super .onCreate(savedInstanceState);
     setContentView(R.layout.activity_main);
     btn1 = (Button) this .findViewById(R.id.button1);
     btn1.setOnClickListener( new  ClickEvent());
     
     btn2 = (Button) this .findViewById(R.id.button2);
     btn2.setOnClickListener( new  ClickEvent());
     
     btn3 = (Button) this .findViewById(R.id.button3);
     btn3.setOnClickListener( new  ClickEvent());
     
     registerReceiver(bcr1, new  IntentFilter(ACTION_1));
}

 发送广播

class  ClickEvent implements  OnClickListener {
 
   @Override
   public  void  onClick(View v) {
       // TODO Auto-generated method stub
       if (v == btn1)
       {
           Intent intent = new  Intent(ACTION_1);
           sendBroadcast(intent);
       }
       if (v == btn2)
       {
           Intent intent = new  Intent(ACTION_2);
           sendBroadcast(intent);
       }
       if (v == btn3)
       {
           IntentFilter filter = new  IntentFilter();
           filter.addAction(Intent.ACTION_BATTERY_LOW);
           filter.addAction(ACTION_3);
           
           registerReceiver(bcr2, new  IntentFilter(ACTION_3));
           
           Intent intent = new  Intent(ACTION_3);
           intent.putExtra( "Conuntry" , "China" );
           intent.putExtra( "City" , "ShangHai" );
           sendBroadcast(intent);
       }
   }

   其中 v == btn1为发送至内部动态注册的BroadcastReceiver;

       v == btn2为发送至内部静态注册的BroadcastReceiver;

   v == btn3为发送至系统级内部动态注册BroadcastReceiver(bt1和bt3基本一样,只是稍微加了addAction以及Intent的putExtra);

 

2 静态注册BroastcastReceiver。静态注册更要烦些,要在Androidmanifest.xml中注册。

<application
     android:allowBackup= "true"
     android:icon= "@drawable/ic_launcher"
     android:label= "@string/app_name"
     android:theme= "@style/AppTheme"  >
     <receiver android:name= "cls2" >
         <intent-filter>
             <action android:name= "com.example.broadcastreceiverdemo.ACTION_2" ></action>
         </intent-filter>
     </receiver>
     <activity
         android:name= "com.example.broadcastreceiverdemo.MainActivity"
         android:label= "@string/app_name"  >
         <intent-filter>
             <action android:name= "android.intent.action.MAIN"  />
 
             <category android:name= "android.intent.category.LAUNCHER"  />
         </intent-filter>
     </activity>
</application>

 并且要实现一个类继承BroadcastReceiver

public  class  cls2 extends  BroadcastReceiver{
 
     @Override
     public  void  onReceive(Context context, Intent intent) {
         // TODO Auto-generated method stub
         String action = intent.getAction(); 
         Toast.makeText(context, "静态:" +action, 1000 ).show(); 
 
     }
}

 


本文转自Work Hard Work Smart博客园博客,原文链接:http://www.cnblogs.com/linlf03/archive/2013/03/14/2959367.html,如需转载请自行联系原作者

目录
相关文章
|
9月前
|
设计模式 Android开发
[Android 四大组件] --- BroadcastReceiver
[Android 四大组件] --- BroadcastReceiver
74 0
|
存储 缓存 前端开发
关于Android SurfaceView截屏总结
关于Android SurfaceView截屏总结
1742 0
|
8月前
|
设计模式 Android开发
44. 【Android教程】广播接收器:Broadcast Receiver
44. 【Android教程】广播接收器:Broadcast Receiver
201 2
|
编解码 Android开发
Android | 老生常谈!屏幕适配原理 & 方案总结笔记
Android | 老生常谈!屏幕适配原理 & 方案总结笔记
610 0
Android | 老生常谈!屏幕适配原理 & 方案总结笔记
|
9月前
|
Android开发 Kotlin
android开发,使用kotlin学习BroadcastReceiver
android开发,使用kotlin学习BroadcastReceiver
278 0
|
Android开发
Android手写占位式插件化框架之Activity通信、Service通信和BroadcastReceiver通信(二)
Android手写占位式插件化框架之Activity通信、Service通信和BroadcastReceiver通信
130 0
|
Android开发
Android手写占位式插件化框架之Activity通信、Service通信和BroadcastReceiver通信(一)
Android手写占位式插件化框架之Activity通信、Service通信和BroadcastReceiver通信
154 0
|
数据库 Android开发 开发者
Android 开发四大组件(Activity、Service、Broadcast Receiver、Content Provider)
Android 开发四大组件(Activity、Service、Broadcast Receiver、Content Provider)
187 0
|
API Android开发 开发者
Android四大组件-BroadcastReceiver
Android四大组件-BroadcastReceiver
136 0
|
开发工具 Android开发
Android推送集成方案总结
刚做完推送集成方案,记录下坑。 这里记录的特性和使用时针对写blog时采用的sdk的,具体使用流程和限制还请参考官方给出的sdk. #### 1、推送规则 小米手机用小米推送; 华为手机用华为推送; 其他手机用友盟推送。

热门文章

最新文章

  • 1
    【08】flutter完成屏幕适配-重建Android,增加GetX路由,屏幕适配,基础导航栏-多版本SDK以及gradle造成的关于fvm的使用(flutter version manage)-卓伊凡换人优雅草Alex-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
  • 2
    Android历史版本与APK文件结构
  • 3
    【01】噩梦终结flutter配安卓android鸿蒙harmonyOS 以及next调试环境配鸿蒙和ios真机调试环境-flutter项目安卓环境配置-gradle-agp-ndkVersion模拟器运行真机测试环境-本地环境搭建-如何快速搭建android本地运行环境-优雅草卓伊凡-很多人在这步就被难倒了
  • 4
    当flutter react native 等混开框架-并且用vscode-idea等编译器无法打包apk,打包安卓不成功怎么办-直接用android studio如何打包安卓apk -重要-优雅草卓伊凡
  • 5
    APP-国内主流安卓商店-应用市场-鸿蒙商店上架之必备前提·全国公安安全信息评估报告如何申请-需要安全评估报告的资料是哪些-优雅草卓伊凡全程操作
  • 6
    【03】仿站技术之python技术,看完学会再也不用去购买收费工具了-修改整体页面做好安卓下载发给客户-并且开始提交网站公安备案-作为APP下载落地页文娱产品一定要备案-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
  • 7
    【09】flutter首页进行了完善-采用android studio 进行真机调试开发-增加了直播间列表和短视频人物列表-增加了用户中心-卓伊凡换人优雅草Alex-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
  • 8
    【02】仿站技术之python技术,看完学会再也不用去购买收费工具了-本次找了小影-感觉页面很好看-本次是爬取vue需要用到Puppeteer库用node.js扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
  • 9
    Cellebrite UFED 4PC 7.71 (Windows) - Android 和 iOS 移动设备取证软件
  • 10
    escrcpy:【技术党必看】Android开发,Escrcpy 让你无线投屏新体验!图形界面掌控 Android,30-120fps 超流畅!🔥
  • 1
    android FragmentManager 删除所有Fragment 重建
    15
  • 2
    Android实战经验之Kotlin中快速实现MVI架构
    21
  • 3
    即时通讯安全篇(一):正确地理解和使用Android端加密算法
    24
  • 4
    escrcpy:【技术党必看】Android开发,Escrcpy 让你无线投屏新体验!图形界面掌控 Android,30-120fps 超流畅!🔥
    39
  • 5
    【01】噩梦终结flutter配安卓android鸿蒙harmonyOS 以及next调试环境配鸿蒙和ios真机调试环境-flutter项目安卓环境配置-gradle-agp-ndkVersion模拟器运行真机测试环境-本地环境搭建-如何快速搭建android本地运行环境-优雅草卓伊凡-很多人在这步就被难倒了
    122
  • 6
    Cellebrite UFED 4PC 7.71 (Windows) - Android 和 iOS 移动设备取证软件
    40
  • 7
    【03】仿站技术之python技术,看完学会再也不用去购买收费工具了-修改整体页面做好安卓下载发给客户-并且开始提交网站公安备案-作为APP下载落地页文娱产品一定要备案-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
    55
  • 8
    Android历史版本与APK文件结构
    149
  • 9
    【02】仿站技术之python技术,看完学会再也不用去购买收费工具了-本次找了小影-感觉页面很好看-本次是爬取vue需要用到Puppeteer库用node.js扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
    46
  • 10
    【01】仿站技术之python技术,看完学会再也不用去购买收费工具了-用python扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-客户的麻将软件需要下载落地页并且要做搜索引擎推广-本文用python语言快速开发爬取落地页下载-优雅草卓伊凡
    40