【安卓实验】实验五、广播实验
【实验名称】实验五、广播实验
【实验目的】
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销毁时,广播接收者也被移除。
【安卓实验】实验五、广播实验相关推荐
- 计算机网络与协议实验VLAN配置,计算机网络实验三虚拟局域网vlan划分与配置
计算机网络实验三虚拟局域网vlan划分与配置 (5页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 19.90 积分 计算机网络原理计算机网络原理 实验报告 ...
- java实验四结果,java实验四异常处理.doc
java实验四异常处理.doc 实验四异常处理一.实验目的1.掌握异常的概念和Java异常处理机制.2.掌握异常的定义.抛出和捕捉处理.二.实验内容与要求1.仔细读下面的JAVA语言源程序,自己给出程 ...
- 南航计算机硬件实验,南航计硬实验四数据块移动实验报告.doc
南航计硬实验四数据块移动实验报告 电工电子实验中心 课程名称: 计算机硬件技术基础实验 实验名称: 实验四 数据块移动 姓名: 学号: 评定成绩: 审阅教师: 实验时间: 2020.5.7 南京航空航 ...
- 计算机绘图实验一报告,城市规划实验报告 - 范文中心
城市规划实验报告 [键入文档标题] 学号:07093282 姓名:刘晓铃 班级:土地09-1班 2012/1/12 城市规划实验报告 一. 实验目的和要求 城镇城市规划原理是土地资源管理专业的选修课程 ...
- 【74LS273扩展I/O口实验】—— 微机原理实验
本文目录 一.实验要求 二.实验目的 三.实验电路 实验1 实验2 四.实验代码及实验结果 实验1 实验2 五.实验总结 一.实验要求 LED灯控制:以74LS273作为I/O口,编写程序控制8个单色 ...
- 2021-11-02 操作系统实验3——生产者消费者实验
文章目录 一.实验目的 二.实验任务 三.实验要求 四.实验过程 五.实验测试 一.实验目的 了解和熟悉linux系统下的信号量集和共享内存. 二.实验任务 使用linux系统提供的信号量集和共享内存 ...
- 计算机网络实验五,计算机网络(实验五).docx
计算机网络(实验五).docx 实验五一.实验内容在这个实验室里,我们将探讨ICMP 协议得几个方面由 Ping 项目产生得P 信息Tracer ute程序生成得C消息关于 CM 信息得格式与内容.在 ...
- java程序设计输入输出实验_20145320《Java程序设计》第五次实验报告
20145320<Java程序设计>第五次实验报告 北京电子科技学院(BESTI)实验报告 课程:Java程序设计 班级:1453 指导教师:娄嘉鹏 实验日期:2016.05.06 18: ...
- R语言入门第五集 实验四:数据分析
R语言入门第五集 实验四:数据分析 一.资源 [R语言]R语言函数练习--东北大学大数据班R实训第四次作业 R语言:常用apply函数(apply,tapply,sapply,lapply)用法介绍 ...
最新文章
- 5个可以帮助你提高工作效率的新AI工具
- 浙江大学PAT考试1009~1012(1010上帝是冠军。。)
- Py之playsound:playsound的简介、安装、使用方法之详细攻略
- 【PAT甲级 约会】1061 Dating (20 分) C++ 全部AC
- java ee基础知识_Java EE:基础知识
- 计算机网络知识点总结谢,《计算机网络基础》复习提纲_谢(5)版-课堂教案
- indesign使用教程,如何将颜色保存为色板?
- 阶段1 语言基础+高级_1-3-Java语言高级_05-异常与多线程_第3节 线程同步机制_4_解决线程安全问题_同步代码块...
- elassearch(一)----java api操作elassearch---简单的增删改查
- python爬取饿了么评论_爬虫实例:饿了么爬虫
- [人工智能-深度学习-72]:卷积神经网络 - 空间金字塔池化SPP-Net网络与Pytorch代码实现
- 虚拟机2008安装DHPC服务器,Windows Server 2008 配置DHCP服务器
- 第一型曲线和曲面积分总结
- 7周入门数据分析:(2)分析界的No.1——Excel
- 利用逆矩阵简化矩阵多项式
- 生成在线图片地址,用于测试
- amule与firefox4的关联
- 蓝湖-简单好用的设计协作平台
- 数字图像处理 使用C#进行图像处理六 内存映射文件
- symbian 模拟器乱码