摘要:一知识介绍广播分类有序广播接收者收到广播传递给传给,有序传递。任何一个环节都可以终止广播,也可以修改广播中携带的数据。发送方式广播接收者按是否常驻分类常驻型广播接收者在中注册,只要应用程序没有被卸载就持续存在。
一、知识介绍 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 import android.content.Context; 3 import android.content.Intent; 4 import android.widget.Toast; 5 6 public class MyReceiver extends BroadcastReceiver { 7 8 @Override 9 public void onReceive(Context context, Intent intent) { 10 // TODO: This method is called when the BroadcastReceiver is receiving 11 Toast.makeText(context, "收到广播", Toast.LENGTH_SHORT).show(); 12 } 13 }【AndroidManifest.xml】
1【activity_main.xml】5 6 87
1【MainActivity】
1 import android.content.Intent; 2 import android.support.v7.app.AppCompatActivity; 3 import android.os.Bundle; 4 import android.view.View; 5 import android.widget.Button; 6 7 public class MainActivity extends AppCompatActivity { 8 9 Button btn; 10 @Override 11 protected void 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 @Override 18 public void onClick(View view) { 19 Intent intent = new Intent("com.example.MyApplication2.myreceiver"); 20 sendBroadcast(intent); 21 } 22 }); 23 24 } 25 }
【提示】发送广播intent设置的action要和广播接受者设置的action相同,这样广播接收者才能收到发送的广播
【效果】点击
二、项目二【发送有序广播】 【步骤】
①定义三个广播接收者,观察顺序
②添加按钮点击
③设置intent,发送有序广播
【项目结构】【定义三个广播接收者并注册】
15 96 87 13 1714 1615 21 22 2423
【提示】设置priority为不同的值,action name为相同的,接收同一个广播
【MainActivity】
1 btn2 = findViewById(R.id.btn2); 2 btn2.setOnClickListener(new View.OnClickListener() { 3 @Override 4 public void onClick(View view) { 5 Intent intent = new Intent("com.example.MyApplication2.myreceiver"); 6 sendOrderedBroadcast(intent,null); 7 } 8 });【效果】
点击按钮执行顺序
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/3059.html
摘要:但是,一定会被执行,从而保证了广播在死亡前一定会被注销,从而防止内存泄露。对于应用内广播的动态注册非方式,回调中的返回值是 前言 BroadcastReceiver(广播接收器),属于Android四大组件之一 在Android开发中,BroadcastReceiver的应用场景非常多 今天,我将详细讲解关于BroadcastReceiver的一切相关知识 目录 showImg(...
摘要:但是,一定会被执行,从而保证了广播在死亡前一定会被注销,从而防止内存泄露。对于应用内广播的动态注册非方式,回调中的返回值是 前言 BroadcastReceiver(广播接收器),属于Android四大组件之一 在Android开发中,BroadcastReceiver的应用场景非常多 今天,我将详细讲解关于BroadcastReceiver的一切相关知识 目录 showImg(...
摘要:中使用了非常多的来广播系统事件,例如网络变化电池电量来电。动作字符串可以用来标识要广播的事件,需要是唯一的。在中注册接收器,在中注销它。在运行时管理想要减少应用程序的开销,最好禁用一些系统常用事件。 广播 接收、效率很低、只有先注册了广播才能发送广播。 使用 Intent 来广播一个事件,让你和第三方开发人员对事件作出反应,可以通过监听 Broadcast Intent 来对设备状态...
摘要:静态注册广播的方法动态注册广播在中动态注册广播,通常格式如下动态注册广播动态注册监听灭屏点亮屏幕的广播在广播中动态注册广播请注意一定要使用,防止为空,引起空指针异常。绑定模式此模式通过绑定组件等调用启动此服务随绑定组件的消亡而解除绑定。 showImg(https://segmentfault.com/img/remote/1460000019975019?w=157&h=54); 极...
摘要:作为的四大组件之二,其应用场景非常多。作用可以监听或接收应用或系统发出的广播消息,并做出响应。可以指定独立的进程四大组件都可以通过此属性指定自己的独立进程。对于应用内广播的动态注册方式,回调中的返回值是。 前言 Hi,大家好,又双见面啦,上一期我们讲了如何使用Activity,肯定有不少小伙伴已经创建了属于自己的FirstActivity,那么这一期我们主要为大家介绍第二个重要组件Br...
阅读 1532·2021-11-11 16:54
阅读 2544·2021-09-24 09:47
阅读 1811·2019-08-30 15:56
阅读 2237·2019-08-30 15:44
阅读 1065·2019-08-30 15:43
阅读 1670·2019-08-30 11:07
阅读 677·2019-08-29 17:11
阅读 1322·2019-08-29 15:23