【实验名称】实验五、广播实验
【实验目的】
1、了解使用Intent进行组件通信的原理;
2、了解Intent过滤器的原理和匹配机制;
3、掌握发送和接收广播的方法
【实验内容】
任务1、普通广播;
任务2、系统广播;
任务3、有序广播;

【实验要求】
1、练习使用静态方法和动态方法注册广播接收器
2、练习发送广播消息的方法;

(请完成如下部分)
【实验设计】


静态注册

动态注册


MainActivity.java

package com.example.test04_broadcast;import androidx.appcompat.app.AppCompatActivity;import android.content.ComponentName;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;public class MainActivity extends AppCompatActivity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);}public void staticSys(View view){Intent intent = new Intent(MainActivity.this, StaticReceiver.class);startActivity(intent);}public void actionSys(View view){Intent intent = new Intent(MainActivity.this, ActionReceiver.class);startActivity(intent);}public void orderSys(View view){Intent intent = new Intent(MainActivity.this, OrderReceiver.class);startActivity(intent);}
}

ActionReceiver.java

package com.example.test04_broadcast;import android.app.Activity;
import android.content.ComponentName;
import android.content.Intent;
import android.content.IntentFilter;
import android.os.Bundle;
import android.view.View;import androidx.annotation.Nullable;public class ActionReceiver extends Activity {protected static final String ACTION ="com.eoeAndroid.broadcastReceiver.RECEIVER_ACTION";private MyReceiver myReceiver;@Overrideprotected void onCreate(@Nullable Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.actionlayout);}public void sendAct(View view){Intent intent=new Intent();       //实例化Intentintent.setAction(ACTION);      //设置Intent的action属性intent.putExtra("info","动态方法");sendBroadcast(intent);}public void register(View view){myReceiver = new MyReceiver();IntentFilter filter = new IntentFilter();filter.addAction(ACTION);registerReceiver(myReceiver, filter);}public void unregister(View view){unregisterReceiver(myReceiver);}
}

MyOrderReceiverOne.java

package com.example.test04_broadcast;import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;public class MyOrderReceiverOne extends BroadcastReceiver {@Overridepublic void onReceive(Context context, Intent intent) {System.out.println("我收到有序的啦");}
}

MyOrderReceiverTwo.java

package com.example.test04_broadcast;import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;public class MyOrderReceiverTwo extends BroadcastReceiver {@Overridepublic void onReceive(Context context, Intent intent) {System.out.println("我收到有序的啦");}
}

MyOrderReceiverThree.java

package com.example.test04_broadcast;import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;public class MyOrderReceiverThree extends BroadcastReceiver {@Overridepublic void onReceive(Context context, Intent intent) {System.out.println("我收到有序的啦");}
}

MyReceiver.java

package com.example.test04_broadcast;import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.view.Gravity;
import android.widget.Toast;public class MyReceiver extends BroadcastReceiver {public MyReceiver() {}@Overridepublic void onReceive(Context context, Intent intent) {Toast t = Toast.makeText(context,"广播方式:"+intent.getStringExtra("info"), Toast.LENGTH_SHORT);t.setGravity(Gravity.TOP,0,40);t.show();}
}

StaticReceiver.java

package com.example.test04_broadcast;import android.app.Activity;
import android.content.ComponentName;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;public class StaticReceiver extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.staticlayout);}public void send(View view){Intent intent = new Intent();//intent.setAction("com.eoeAndroid.broadcastReceiver.RECEIVER_ACTION");intent.putExtra("info","静态方法");intent.setComponent(new ComponentName(getPackageName(),"com.example.test04_broadcast.MyReceiver"));sendBroadcast(intent);}
}

actionlayout.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:orientation="vertical"android:layout_width="match_parent"android:layout_height="match_parent"tools:context=".ActionReceiver"><Buttonandroid:id = "@+id/actBroadcast"android:layout_width = "match_parent"android:layout_height = "wrap_content"android:text = "发送Broadcast"android:onClick="sendAct"/><Buttonandroid:id = "@+id/registerReceiver"android:layout_width = "match_parent"android:layout_height = "wrap_content"android:text = "创建"android:onClick="register"/><Buttonandroid:id = "@+id/unregisterReceiver"android:layout_width = "match_parent"android:layout_height = "wrap_content"android:text = "注销"android:onClick="unregister"/></LinearLayout>

activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:orientation="vertical"android:layout_width="match_parent"android:layout_height="match_parent"tools:context=".MainActivity"><Buttonandroid:id = "@+id/staticButton"android:layout_width = "match_parent"android:layout_height = "wrap_content"android:text = "静态方法"android:onClick="staticSys"/><Buttonandroid:id = "@+id/actionButton"android:layout_width = "match_parent"android:layout_height = "wrap_content"android:text = "动态方法"android:onClick="actionSys"/><Buttonandroid:id = "@+id/orderButton"android:layout_width = "match_parent"android:layout_height = "wrap_content"android:text = "有序广播"android:onClick="orderSys"/></LinearLayout>

orderlayout.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:orientation="vertical"android:layout_width="match_parent"android:layout_height="match_parent"tools:context=".OrderReceiver"><Buttonandroid:id = "@+id/orderBroadcast"android:layout_width = "match_parent"android:layout_height = "wrap_content"android:text = "发送Broadcast"android:onClick="sendOrd"/>
</LinearLayout>

staticlayout.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:orientation="vertical"android:layout_width="match_parent"android:layout_height="match_parent"tools:context=".StaticReceiver"><Buttonandroid:id = "@+id/btnBroadcast"android:layout_width = "match_parent"android:layout_height = "wrap_content"android:text = "发送Broadcast"android:onClick="send"/>
</LinearLayout>

【实验分析或心得】
静态注册的优点是无论应用程序是否处于运行状态,广播接受者都会对程序进行监听。并在清单文件中完成注册。动态注册是创建一个广播接收者,并在Activity中进行注册,动态注册的广播接收者的生命周期依赖于注册广播的组件。当Activity销毁时,广播接收者也被移除。

【安卓实验】实验五、广播实验相关推荐

  1. 计算机网络与协议实验VLAN配置,计算机网络实验三虚拟局域网vlan划分与配置

    计算机网络实验三虚拟局域网vlan划分与配置 (5页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 19.90 积分 计算机网络原理计算机网络原理 实验报告 ...

  2. java实验四结果,java实验四异常处理.doc

    java实验四异常处理.doc 实验四异常处理一.实验目的1.掌握异常的概念和Java异常处理机制.2.掌握异常的定义.抛出和捕捉处理.二.实验内容与要求1.仔细读下面的JAVA语言源程序,自己给出程 ...

  3. 南航计算机硬件实验,南航计硬实验四数据块移动实验报告.doc

    南航计硬实验四数据块移动实验报告 电工电子实验中心 课程名称: 计算机硬件技术基础实验 实验名称: 实验四 数据块移动 姓名: 学号: 评定成绩: 审阅教师: 实验时间: 2020.5.7 南京航空航 ...

  4. 计算机绘图实验一报告,城市规划实验报告 - 范文中心

    城市规划实验报告 [键入文档标题] 学号:07093282 姓名:刘晓铃 班级:土地09-1班 2012/1/12 城市规划实验报告 一. 实验目的和要求 城镇城市规划原理是土地资源管理专业的选修课程 ...

  5. 【74LS273扩展I/O口实验】—— 微机原理实验

    本文目录 一.实验要求 二.实验目的 三.实验电路 实验1 实验2 四.实验代码及实验结果 实验1 实验2 五.实验总结 一.实验要求 LED灯控制:以74LS273作为I/O口,编写程序控制8个单色 ...

  6. 2021-11-02 操作系统实验3——生产者消费者实验

    文章目录 一.实验目的 二.实验任务 三.实验要求 四.实验过程 五.实验测试 一.实验目的 了解和熟悉linux系统下的信号量集和共享内存. 二.实验任务 使用linux系统提供的信号量集和共享内存 ...

  7. 计算机网络实验五,计算机网络(实验五).docx

    计算机网络(实验五).docx 实验五一.实验内容在这个实验室里,我们将探讨ICMP 协议得几个方面由 Ping 项目产生得P 信息Tracer ute程序生成得C消息关于 CM 信息得格式与内容.在 ...

  8. java程序设计输入输出实验_20145320《Java程序设计》第五次实验报告

    20145320<Java程序设计>第五次实验报告 北京电子科技学院(BESTI)实验报告 课程:Java程序设计 班级:1453 指导教师:娄嘉鹏 实验日期:2016.05.06 18: ...

  9. R语言入门第五集 实验四:数据分析

    R语言入门第五集 实验四:数据分析 一.资源 [R语言]R语言函数练习--东北大学大数据班R实训第四次作业 R语言:常用apply函数(apply,tapply,sapply,lapply)用法介绍 ...

最新文章

  1. 5个可以帮助你提高工作效率的新AI工具
  2. 浙江大学PAT考试1009~1012(1010上帝是冠军。。)
  3. Py之playsound:playsound的简介、安装、使用方法之详细攻略
  4. 【PAT甲级 约会】1061 Dating (20 分) C++ 全部AC
  5. java ee基础知识_Java EE:基础知识
  6. 计算机网络知识点总结谢,《计算机网络基础》复习提纲_谢(5)版-课堂教案
  7. indesign使用教程,如何将颜色保存为色板?
  8. 阶段1 语言基础+高级_1-3-Java语言高级_05-异常与多线程_第3节 线程同步机制_4_解决线程安全问题_同步代码块...
  9. elassearch(一)----java api操作elassearch---简单的增删改查
  10. python爬取饿了么评论_爬虫实例:饿了么爬虫
  11. [人工智能-深度学习-72]:卷积神经网络 - 空间金字塔池化SPP-Net网络与Pytorch代码实现
  12. 虚拟机2008安装DHPC服务器,Windows Server 2008 配置DHCP服务器
  13. 第一型曲线和曲面积分总结
  14. 7周入门数据分析:(2)分析界的No.1——Excel
  15. 利用逆矩阵简化矩阵多项式
  16. 生成在线图片地址,用于测试
  17. amule与firefox4的关联
  18. 蓝湖-简单好用的设计协作平台
  19. 数字图像处理 使用C#进行图像处理六 内存映射文件
  20. symbian 模拟器乱码

热门文章

  1. 面试之必掌握知识点:红黑树(一)
  2. 全网最详细金融APP测试功能点-测试用例,详细整理(全)
  3. 多线程环境下HashMap导致CPU100%
  4. 408如何复习?浙大学长经验贴
  5. LitJson在Unity中的使用
  6. 配置teamviewer远程无显示器ubuntu工控机实操
  7. 转载:徐家骏:我在华为工作十年的感悟
  8. 常见互联网公司职级和薪资一览!
  9. k8s(八)—调度因素(nodeName、nodeSelector、亲和与反亲和、Taints 污点)、影响pod调度的指令
  10. 杨振宁100岁:一个公式统治世界