>>分享Android开发相关的技术 书籍支持  卫琴直播  品书摘要  在线测试  资源下载  联系我们
发表一个新主题 开启一个新投票 回复文章 您是本文章第 18894 个阅读者 刷新本主题
 * 贴子主题:  Android Broadcast receiver 编程 回复文章 点赞(0)  收藏  
作者:Jacky    发表时间:2020-05-15 10:57:47     消息  查看  搜索  好友  邮件  复制  引用

    在Android中,广播(broadcast)是非常有用的功能。通过广播可以通知其他广播接受这某个事件发生了。比如电源不足,信号不好等。

         下面我做了一个简单的demo,首先看看activity
  1.    package  com.android.broadcasttest;
  2.    import  android.app.Activity;
  3.    import  android.content.Intent;
  4.    import  android.os.Bundle;
  5.    import  android.view.View;
  6.    import  android.view.View.OnClickListener;
  7.    import  android.widget.Button;
  8.    public   class  BroadcastTest  extends Activity {
  9.        public   static   final  String NEW_LIFEFORM_DETECTED =  
  10.            "com.android.broadcasttest.NEW_LIFEFORM" ;
  11.        /** Called when the activity is first created. */  
  12.        @Override  
  13.        public   void  onCreate(Bundle savedInstanceState) {
  14.            super .onCreate(savedInstanceState);
  15.           setContentView(R.layout.main);
  16.           Button btn0 = (Button)findViewById(R.id.btn0);
  17.           btn0.setOnClickListener( new  OnClickListener() {
  18.                public   void  onClick(View v) {
  19.                   Intent it =  new  Intent(NEW_LIFEFORM_DETECTED);          
  20.                   sendBroadcast(it);
  21.               }
  22.           });
  23.       }
  24.   }

     在这个activity中生成了一个按钮,当按下按钮的时候通过sendBroadcast()发送一个广播。

         我们再看看广播接收者代码:

  1.    package  com.android.broadcasttest;
  2.    import  android.content.BroadcastReceiver;
  3.    import  android.content.Context;
  4.    import  android.content.Intent;
  5.    import  android.util.Log;
  6.    import  android.widget.Toast;
  7.    public   class  MyBroadcastReceiver  extends BroadcastReceiver {
  8.        public   static   final  String BURN =
  9.            "com.paad.alien.action.BURN_IT_WITH_FIRE" ;
  10.        public  MyBroadcastReceiver () {
  11.           Log.v( "BROADCAST_TAG" ,  "myBroadCast" );
  12.       }
  13.        @Override  
  14.        public   void  onReceive(Context context, Intent intent) {
  15.            // TODO Auto-generated method stub        
  16.           Toast.makeText(context,  "成功接收广播:" , Toast.LENGTH_LONG).show();  
  17.       }
  18.   }

     在onReceive()中实现了当接收到广播所做的动作。

         我们还需要在AndroidManifest.xml中注册该receiver

  1.    <? xml   version = "1.0"   encoding = "utf-8" ?>  
  2.    < manifest   xmlns:android = "http://schemas.android.com/apk/res/android"  
  3.          package = "com.android.broadcasttest"  
  4.          android:versionCode = "1"  
  5.          android:versionName = "1.0" >  
  6.        < application   android:icon = "@drawable/icon"   android:label = "@string/app_name" >  
  7.            < activity   android:name = ".BroadcastTest"  
  8.                      android:label = "@string/app_name" >  
  9.                < intent-filter >  
  10.                    < action   android:name = "android.intent.action.MAIN"   />  
  11.                    < category   android:name = "android.intent.category.LAUNCHER"   />  
  12.                </ intent-filter >  
  13.            </ activity >  
  14.            < receiver   android:name = ".MyBroadcastReceiver" >  
  15.                < intent-filter >  
  16.                    < action   android:name = "com.android.broadcasttest.NEW_LIFEFORM"   />  
  17.                </ intent-filter >  
  18.            </ receiver >  
  19.        </ application >          
  20.        < uses-sdk   android:minSdkVersion = "8"   />  
  21.    </ manifest >  

     在receiver的action中定义了该receiver能够接受的广播。



----------------------------
原文链接:https://blog.51cto.com/buaadallas/377637

程序猿的技术大观园:www.javathinker.net



[这个贴子最后由 flybird 在 2020-06-04 08:22:54 重新编辑]
  Java面向对象编程-->输入与输出(下)
  JavaWeb开发-->使用Session(Ⅱ)
  JSP与Hibernate开发-->Spring、JPA与Hibernate的整合
  Java网络编程-->安全网络通信
  精通Spring-->Vue组件开发高级技术
  Vue3开发-->虚拟DOM和render()函数
  Android自动化测试之Robotium学习
  Android 自定义Menu
  Android UI学习 - 用户通知-学习Android
  Android 自定义Menu
  Android Action Bar 自定义View
  Html5调用手机摄像头并实现人脸识别
  android 拼图小游戏
  Android性能优化:布局渲染流程及优化
  Android内存优化—dumpsys meminfo详解
  Bitmap压缩原理解析与Android 7.0之前通过NDK使用libjpeg库高...
  安卓sqlite和Listview
  uniapp安卓ios百度人脸识别、活体检测、人脸采集APP原生插件
  Android - 监听WebView加载失败的处理
  Android adb你真的会用吗?
  Android 判断当前设备是手机还是平板
  更多...
 IPIP: 已设置保密
楼主      
1页 0条记录 当前第1
发表一个新主题 开启一个新投票 回复文章


中文版权所有: JavaThinker技术网站 Copyright 2016-2026 沪ICP备16029593号-2
荟萃Java程序员智慧的结晶,分享交流Java前沿技术。  联系我们
如有技术文章涉及侵权,请与本站管理员联系。