Broadcast广播消息demo

本文展示了一个Android应用中发送和接收Broadcast广播消息的简单示例。在MainActivity中,当点击按钮时,会发送一个带有特定Action和消息内容的Intent。而MyReceiver类作为BroadcastReceiver,会在接收到匹配Action的广播时,显示一个Toast提示接收到的消息。
摘要由CSDN通过智能技术生成


package com.example.ch10_broadcast;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;

public class MainActivity extends Activity {
   
    Button send;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        // 获取程序界面中的按钮
        send = (Button) findViewById(R.id.send);
        send.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                // 创建Intent对象
                Intent intent = new Intent();
                // 设置Intent的Action属性
                intent.setAction("org.crazyit.action.CRAZY_BROADCAST");
                intent.putExtra("msg", "胡斐发送的简单的消息");
                // 发送广播
                sendBroadcast(intent);
            }
        });
    }

}


MyReceiver.java

/**
 * ChinaEdu.com Inc.
 * Copyright (c) 1999-2015 All Rights Reserved.
 */
package com.example.ch10_broadcast;

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.widget.Toast;

/**
 *
 * @author hufei
 * @version $Id: MyReceiver.java, v 0.1 2015-5-4 下午2:42:53 hufei Exp $
 */
public class MyReceiver extends BroadcastReceiver {
   
    @Override
    public void onReceive(Context context, Intent intent) {
        Toast.makeText(context,
            "接收到的Intent的Action为:" + intent.getAction() + "\n消息内容是:" + intent.getStringExtra("msg"),
            5000).show();
    }
}


AndroidManifest.xml:

<receiver android:name=".MyReceiver">
   <intent-filter>
    <action android:name="org.crazyit.action.CRAZY_BROADCAST" />
   </intent-filter>  
  </receiver>


activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <Button
        android:id="@+id/send"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="@string/send" />

</LinearLayout>

实验目的: 了解Android中Broadcast广播的使用方法和实现原理,掌握Broadcast广播的发送和接收机制。 实验环境: Android Studio 4.1.2 实验步骤: 1.创建一个新的Android项目,取名为BroadcastDemo。 2.在AndroidManifest.xml文件中添加两个Activity,并在MainActivity的布局文件中添加一个Button按钮。 3.创建一个自定义广播接收器类MyReceiver,用于接收自定义广播。 ```java public class MyReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { String data = intent.getStringExtra("data"); Toast.makeText(context, "接收到广播,数据为:" + data, Toast.LENGTH_SHORT).show(); } } ``` 4.在MainActivity中注册广播接收器。 ```java public class MainActivity extends AppCompatActivity { private MyReceiver receiver; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); receiver = new MyReceiver(); IntentFilter filter = new IntentFilter("com.example.broadcastdemo.MY_BROADCAST"); registerReceiver(receiver, filter); Button button = findViewById(R.id.btn_send_broadcast); button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent("com.example.broadcastdemo.MY_BROADCAST"); intent.putExtra("data", "Hello, Broadcast!"); sendBroadcast(intent); } }); } @Override protected void onDestroy() { super.onDestroy(); unregisterReceiver(receiver); } } ``` 5.在Button的点击事件中发送广播。 6.运行程序,在MainActivity中点击Button按钮,发送自定义广播。 7.在MyReceiver中接收并处理广播。 实验结果: 运行程序后,点击Button按钮发送自定义广播,MyReceiver接收并处理广播,并弹出Toast提示信息。 实验总结: Broadcast广播是Android中常用的一种通信方式,通过发送和接收广播可以实现不同组件之间的通信。在实际开发中,需要根据具体的需求选择不同的广播类型和注册方式,合理使用广播可以提高应用程序的性能和稳定性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值