四大天王之一BroadCast广播
来源:互联网 发布:linux mint 18评测 编辑:程序博客网 时间:2024/04/27 17:02
大家好,今天给大家讲的是四大组件之一BroadCast广播,广播是一个没有界面,需要注册,依靠Activity界面方可执行广播的功能,开发中很常用到广播,比如说,电量不足,短信来电这些通知功能,就需要系统发出广播,从而功能实现通知。下面给大家讲解广播注册的三种方式,因为广播是没有界面的,所以就不能上图了。
第一种方式:静态注册
1.androidManifest.xml
<!-- 广播静态注册,注册一个时间改变的 -->
<receiver
android:name="com.example.broadcast.TimeChange">
<intent-filter>
<action android:name="android.intent.action.TIME_SET" />
<category android:name="android.intent.category.DEFAULT"/>
</intent-filter>
</receiver>
2.TimeChange.java
//继承BroadCastReceive
public class TimeChange extends BroadcastReceiver {
//广播接受者
public void onReceive(Context context, Intent intent) {
//intent.getAction得到广播进行判断
if(intent.getAction().equals(Intent.ACTION_TIME_CHANGED)){
Toast.makeText(context, "时间改变了TimeChange", Toast.LENGTH_SHORT).show();
}
}
}
2.第二种方式:动态注册,Intentfilter--->addAction--->registerReceiver
1.MainActivity.java
//定义MyReceiver
private MyReceiver receiver;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//初始化receiver
receiver = new MyReceiver();
//意图过滤器
IntentFilter filter = new IntentFilter();
//添加过滤广播条件
filter.addAction(Intent.ACTION_TIMEZONE_CHANGED);
//注册广播
registerReceiver(receiver, filter);
}
@Override
protected void onDestroy() {
//销毁广播
unregisterReceiver(receiver);
super.onDestroy();
}
//广播接着,继承BroadCastReceiver
private class MyReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
//得到广播,进行判断
if (intent.getAction().equals(Intent.ACTION_TIMEZONE_CHANGED)) {
Toast.makeText(context, "时区改变", Toast.LENGTH_SHORT).show();
}
}
}
}
第三种方式:3.动态注册自定义注册:Intent-->intent.setAction()--->intent.getAction()
第三种方式是自定义注册,添加一个点击按钮进行监听,发广播。
public class MainActivity extends Activity {
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
//点击事件
public void send(View v) {
//Intent意图,实现跳转
Intent intent = new Intent(MainActivity.this,TimeChange.class);
//自定义setAction,添加新的广播
intent.setAction("HAHAHA");
//发广播
sendBroadcast(intent);
}
}
TimeChange.java
//广播接受者
public class TimeChange extends BroadcastReceiver {
public void onReceive(Context context, Intent intent) {
//得到新填的广播
if(intent.getAction().equals("HAHAHA")){
Toast.makeText(context, "哈哈哈", Toast.LENGTH_SHORT).show();
}
}
}
今天就讲到这里了,广播的三种实现方式,虽然简单,但很实用。晚安,明天又是新的开始。
- 四大天王之一BroadCast广播
- 广播(BroadcastReceiver)---安卓中的"四大天王"之一
- Android 四大组件之一 Broadcast广播
- Android开发四大组件之一广播(Broadcast)
- 四大组件之一广播——Broadcast Receiver
- Android四大基本组件之一 ,广播(broadcast receiver)---无序广播
- Android四大基本组件之一 ,广播(broadcast receiver)---有序广播
- Android 四大组件 Broadcast 广播
- 关于Android四大组件之一broadcast receiver的详解(广播接收者)
- android四大组件之一 BroadCast
- Android:四大组件之-----广播(Broadcast)
- 四大组件之广播接收器-Broadcast Receiver
- [Android四大组件] Broadcast Receiver 广播
- 四大组件 广播机制之Broadcast
- Android四大组件之一广播
- Android四大组件之一:广播
- Android四大组件之一----Broadcast学习心得
- 四大组件之一Broadcast应用实例
- POJ 2492 A Bug's Life(种类并查集 + 偏移量)
- cocos AssetsManagerEX
- 高手-大型高并发高负载网站的系统架构
- 编写高质量代码--改善Java程序的151个建议--读书笔记
- Button属性
- 四大天王之一BroadCast广播
- Failed to install metadata only whitespace content allowed before start tag and not \u0
- poj 2686 Traveling by Stagecoach【状态压缩】
- 45.数据库
- 二叉树遍历的应用(路径和问题,判断是否是二叉搜索树,判断是否是二叉平衡树)
- Android的常用基本控件ImageView、ListView
- 魅蓝note如何进行安卓开发调试
- POJ 3522 生成树(kruskal)
- web.xml配置