Unit5:广播
2024-09-06 13:06:38
静态广播
1.定义
public class TestBroadCast extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Toast.makeText(context, "静态注册", Toast.LENGTH_SHORT).show();
}
}
2.注册
<receiver
android:name=".TestBroadCast"
android:enabled="true"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED"/>
</intent-filter>
</receiver>
3.发送
Intent intent = new Intent();
intent.setAction("HELLO");
intent.addFlags(0x01000000); // Android 8.0之后的变化,需要添加之后,静态才能发送广播
sendBroadcast(intent);
动态广播(有序广播)
1.定义
// 定义接收器
broadcastReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
Toast.makeText(context, "动态注册", Toast.LENGTH_SHORT).show();
}
};
2.注册
// 注册
IntentFilter intentFilter = new IntentFilter();
intentFilter.addAction("HELLO");
registerReceiver(broadcastReceiver, intentFilter);
3.发送
Intent intent = new Intent();
intent.setAction("HELLO");
sendOrderedBroadcast(intent,null); // 有序广播的发送
本地广播
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final LocalBroadcastManager localBroadcastManager = LocalBroadcastManager.getInstance(this); // 开启本地广播管理
Button button = findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent("TEST");
localBroadcastManager.sendBroadcast(intent);
}
});
IntentFilter intentFilter = new IntentFilter();
intentFilter.addAction("TEST");
BroadcastReceiver receiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
Toast.makeText(context, "received", Toast.LENGTH_SHORT).show();
}
};
localBroadcastManager.registerReceiver(receiver,intentFilter);
最新文章
- Mac版PhpStorm之XAMPP整合apache服务器配置
- 【RobotFramework自动化测试】数据库值验证
- Windows Server 2012安装时所需要的KEY
- Spring mvc 验证码的做法
- SPOJ AMR10I Dividing Stones --DFS
- javaSE之线程联合
- POJ2449 (k短路)
- treap树及相关算法
- python抓取网页例子
- Android开源项目发现----其他特殊效果篇(持续更新)
- html5中拨打电话代码
- eclipse编码设置
- 《深入理解Java虚拟机》-----第5章 jvm调优案例分析与实战
- Qt学习3---子窗口与父窗口
- 逆向知识第一讲,IDA的熟悉使用
- Android一个自定义的进度环:ProgressChart
- javascript Uncaught ReferenceError: 方法名 is not defined
- 【BZOJ2002】 [Hnoi2010]Bounce 弹飞绵羊
- JAVA classpath jar问题[zz]
- 【WP8】ResourceDictionary
热门文章
- JavaScript基础-03
- 《java多线程——线程简介与其创建(1)》
- 解决VS Code安装golang相关插件失败问题
- python setup.py install 报错【Project namexxx was given, but was not able to be found.】
- MySQL数据库时间字段按年月日显示并多字段去重查询
- 团队作业4:第二篇Scrum冲刺博客(歪瑞古德小队)
- Deep and Beautiful. The Reward Prediction Error Hypothesis of Dopamine
- kali安装open-vm-tools实现虚拟机交互
- 实用的git log用法
- 温故知新——Spring AOP