>>分享Android开发相关的技术 书籍支持  卫琴直播  品书摘要  在线测试  资源下载  联系我们
发表一个新主题 开启一个新投票 回复文章 您是本文章第 19140 个阅读者 刷新本主题
 * 贴子主题:  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开发-->访问数据库(Ⅰ)
  JSP与Hibernate开发-->持久化层的映射类型
  Java网络编程-->通过JavaMail API收发邮件
  精通Spring-->通过Vuex进行状态管理
  Vue3开发-->Vue简介
  Android网络编程之WebKit应用
  Android静默安装的实现
  Android ListView滑动加载
  通过Https访问的Not trusted Server Certificate的问题的解决...
  Android开发实践:编译VLC-for-Android
  android实用测试方法之Monkey与MonkeyRunner
  Android Spinner范例
  Android内核开发:图解Android系统的启动过程
  Android Socket通信
  android 自定义view 实现定制二维码扫描框
  Android 碎片(Fragment)
  Android 开发环境搭建
  MotionLayout 运动布局入门
  Android 启动页倒计时自定义view实现
  Appbarlayout+Recycleview滑动效果颜色渐变
  更多...
 IPIP: 已设置保密
树形列表:   
1页 0条记录 当前第1
发表一个新主题 开启一个新投票 回复文章


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