Broadcast发送广播

Broadcast发送广播,第1张

概述一、知识介绍 1、【广播分类】 ①有序广播:接收者A收到广播传递给B,B传给C,有序传递。任何一个环节都可以终止广播,也可以修改广播中携带的数据。 发送的方式:sendOrderedBroadcast 一、知识介绍  1、【广播分类】

    ①有序广播:接收者A收到广播传递给B,B传给C,有序传递。任何一个环节都可以终止广播,也可以修改广播中携带的数据。

      发送的方式:sendOrderedbroadcast(intent,receiverPermission);

      【提示】①第二个参数是设置发送的权限,这里可以设为null

         ②接收有序广播是需要在intent-flter中设置priority,值越大则先执行,相同则按照注册顺序

    ②无序广播:一个广播发送者,向所有接收者同时发送广播,也就是ABC接收者都同时响应。

      发送方式:sendbroadcast(intent)

  2、【广播接收者】按是否常驻分类

    ①常驻型广播接收者:在androIDManifest.xml中注册,只要应用程序没有被卸载就持续存在。

    ②非常驻型广播接收者:在java代码中注册,一般随Activity或者Service组件产生而产生,随他们销毁而销毁。生命周期比较短。使用的方法是registerReceiver(参数1:广播接收者实例,参数2:频道(意图过滤器));unregisterReceiver(广播接收者实例)

    

二、项目一【发送广播】【步骤】

  ①定义一个广播接收者,自定义添加intent-fliter中的action name

  ②添加按钮,点击事件

  ③定义intent,设置action,发送广播

【项目结构】

     

【MyReceiver】  
 1 import androID.content.broadcastReceiver; 2  androID.content.Context; 3  androID.content.Intent; 4  androID.Widget.Toast; 5  6 public class MyReceiver extends broadcastReceiver { 7  8     @OverrIDe 9     voID onReceive(Context context,Intent intent) {10         // Todo: This method is called when the broadcastReceiver is receiving11         Toast.makeText(context,"收到广播",Toast.LENGTH_SHORT).show();12     }13 }
【AndroIDManifest.xml】
1 <receiver2             androID:name=".receiver.MyReceiver"3             androID:enabled="true"4             androID:exported="true">5             intent-filter6                 action ="com.example.MyApplication2.myreceiver" />7             </8         receiver>
【activity_main.xml】
1     button2        androID:ID="@+ID/btn"       androID:text="发送广播"       androID:layout_wIDth="match_parent"5        androID:layout_height="wrap_content" />
【MainActivity】
 androID.support.v7.app.AppCompatActivity; androID.os.Bundle; androID.vIEw.VIEw; 5  androID.Widget.button; 6  7 class MainActivity  AppCompatActivity { 8  9     button btn;10 11     protected  onCreate(Bundle savedInstanceState) {12         super.onCreate(savedInstanceState);13         setContentVIEw(R.layout.activity_main);14 15         btn = findVIEwByID(R.ID.btn);16         btn.setonClickListener(new VIEw.OnClickListener() {17             @OverrIDe18              onClick(VIEw vIEw) {19                 Intent intent = new Intent("com.example.MyApplication2.myreceiver");20                 sendbroadcast(intent);21             }22         });23         24 25 }

【提示】发送广播intent设置的action要和广播接受者设置的action相同,这样广播接收者才能收到发送的广播

【效果】点击

    

 

 二、项目二【发送有序广播】【步骤】

  ①定义三个广播接收者,观察顺序

  ②添加按钮点击

  ③设置intent,发送有序广播

【项目结构】

    

【定义三个广播接收者并注册】
 2             =".receiver.MyOrderReceiver1" 3  4  5             intent-filter androID:priority="1000" 6                 ="com.example.MyApplication2.myreceiver"  7              8          9         10             =".receiver.MyOrderReceiver2"11 12 13             ="100"14                 15             16         17         18             =".receiver.MyOrderReceiver3"19 20 21             ="10"22                 23             24         >

【提示】设置priority为不同的值,action name为相同的,接收同一个广播

    

    

    

【MainActivity】
1         btn2 = findVIEwByID(R.ID.btn2);2         btn2.setonClickListener(3 4             5                 Intent intent = new Intent("com.example.MyApplication2.myreceiver"6                 sendOrderedbroadcast(intent,null7 8         });
【效果】

  点击按钮执行顺序

 

 

 

 

总结

以上是内存溢出为你收集整理的Broadcast发送广播全部内容,希望文章能够帮你解决Broadcast发送广播所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1121269.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-29
下一篇 2022-05-29

发表评论

登录后才能评论

评论列表(0条)

保存