Android广播应用

本文介绍了Android中的自定义广播和本地广播的使用。在自定义广播部分,展示了如何发送带有附加数据的广播,以及创建BroadcastReceiver接收并打印这些数据。在本地广播部分,讲解了发送本地广播并使用BroadcastReceiver通过Toast显示接收数据的过程。
摘要由CSDN通过智能技术生成

**

1、 自定义广播:

**

(1) 发送一个自定义广播,在intent中附加数据(putExtra方法),key为”extraKey”,value为”CustomValue”

(2) 新创建一个项目,创建BroadcastReceiver子类,接收1中发出的自定义广播,并将附加的数据用log.d打印出来

步骤:新建项目BroadcastTest,在包名处右键新建广播接收器,命名为MyBroadcastReceiver,勾选Exported和Enabled
运行截图:
在这里插入图片描述

代码:

MainActivity.java



public class MainActivity extends AppCompatActivity
{



    @Override

    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_main);

        Button
button1=(Button)findViewById(R.id.button);

        button1.setOnClickListener(new View.OnClickListener(){

            public void onClick(View
v){

                Intent intent=new Intent();

                intent.setAction("com.example.lenovo.broadcasttest.MY_BROADCAST");

                intent.putExtra("extraKey","CustomValue");

                sendBroadcast(intent);

            }

        });

    }

}


activity_main.xml



<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"

    xmlns:tools="http://schemas.android.com/tools"

    android:id="@+id/activity_main"

    android:layout_width="match_parent"

    android:layout_height="match_parent"

    android:paddingBottom="@dimen/activity_vertical_margin"

    android:paddingLeft="@dimen/activity_horizontal_margin"

    android:paddingRight=
Android 广播可以实现跨应用通信,即一个应用程序发送广播,另一个应用程序接收广播。这种跨应用通信的方式可以用于实现不同应用程序之间的协作和数据交换。 具体来说,广播分为两种类型:标准广播和有序广播。标准广播是一种完全异步的广播机制,即发送者不需要等待接收者的响应,接收者也不能阻止其他接收者接收该广播。而有序广播则是一种同步的广播机制,即广播发送者会依次将广播发送给每个接收者,并且每个接收者都可以在接收到广播后终止广播或将广播继续传递给下一个接收者。 如果你想实现跨应用广播,需要在发送广播时指定广播的 Action 和 Package,以及在接收广播时声明相应的 Intent Filter。具体来说,可以使用以下代码在一个应用程序发送广播: ```java Intent intent = new Intent(); intent.setAction("com.example.MY_ACTION"); intent.setPackage("com.another.application.package"); sendBroadcast(intent); ``` 在另一个应用程序,可以使用以下代码声明广播接收器,并在 Manifest 文件注册该接收器: ```java public class MyBroadcastReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { if ("com.example.MY_ACTION".equals(intent.getAction())) { // 处理接收到的广播 } } } ``` ```xml <receiver android:name=".MyBroadcastReceiver"> <intent-filter> <action android:name="com.example.MY_ACTION" /> </intent-filter> </receiver> ``` 需要注意的是,为了保证广播的安全性和合法性,Android 8.0 及以上版本对广播发送和接收做了一些限制,具体可以参考官方文档。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值