Android广播的学习
来源:互联网 发布:ubuntu下格式化u盘 编辑:程序博客网 时间:2024/05/23 15:03
闲来没事,有很多人在问怎么学习,就随便的写一个例子吧。
理解什么是广播。在Android系统中,广播(Broadcast)是在组件之间传播数据(Intent)的一种机制。就像生活中的广播一样有电台在不断的发送广播,至于谁会去接收不用知道也不用管,重要的是谁要听谁就调频到想听的频道就可以了。显然是一种松散的耦合结构。显然要实现广播就需要2个东西:发送消息的电台和接收器,
Android中也类似,分为异步广播和同步(顺序)广播:
Broadcast Receiver(广播接收器)包含两部分功能:一是发送广播消息,另一个是接收广播消息。系统和应用程序都可以发送广播消息,发送广播实际上就是调用sendBroadCast()方法向系统内部发送一个Intent对象,这与startActivity()的作用是类似的,所不同的是:发送广播只能启动Broadcast Receiver对象,而不会启动任何Activity或者Service对象。
final String BROADCAST_TAG = "com.csu.lz" ;//电台频率//按钮事件public void send_brodcast(View v){ //发送广播 Intent intent = new Intent(BROADCAST_TAG); intent.putExtra("key1", "hello , this's a fm radio"); sendBroadcast(intent);//发送广播 }
好啦电台已经在准备就绪,接下来谁要收听呢?好办,准备一个收音机就可以了。写一个类继承BroadcastReceiver 重写onReceive
@Overridepublic void onReceive(Context context, Intent intent) {//在这里接受String msg = intent.getStringExtra("key1");Toast.makeText(context, "我是收音机,现在收听FM999,我听到的是:" + msg, Toast.LENGTH_SHORT).show();}
最后需要在清单文件中注册接受者:
<receiver android:name=".MyBroadCastReceiver"> <intent-filter> <action android:name="com.csu.lz"/> </intent-filter> </receiver>
一个简单的广播的发送和接受就已经完成了。
淡然我们还有动态的方式来完成广播的接收:registerReceiver(广播接受对象,IntentFilter) ;
我们也可以在 onResume中:
MyBroadCastReceiver myrecevier ; @Override protected void onResume() { super.onResume(); IntentFilter intFilter = new IntentFilter(BROADCAST_TAG); //intFilter.addAction(Intent.ACTION_BATTERY_CHANGED); myrecevier = new MyBroadCastReceiver(); registerReceiver(myrecevier, intFilter);//注册 } @Override protected void onPause() { super.onPause(); unregisterReceiver(myrecevier);// }这样就不需要在清单里去定义了。
事实上 Android系统就定义了很多广播我们就可以利用这些获取我们要用的信息,比如电池信息等等。
1.“android.provider.Telephony.SMS_RECEIVED” 收到短信
2. Intent.ACTION_BATTERY_CHANGED 剩余的手机电池量
3. Intent.ACTION_MEDIA_MOUNTED SD 卡成功挂载
........
2. Intent.ACTION_BATTERY_CHANGED 剩余的手机电池量
3. Intent.ACTION_MEDIA_MOUNTED SD 卡成功挂载
4. Intent.ACTION_MEDIA_UNMOUNTED SD 卡未挂载
5. Intent.ACTION_NEW_OUTGOING_CALL 拨打电话
TelephonyManager.ACTION_PHONE_STATE_CHANGED 来电
6. Intent.ACTION_PACKAGE_ADDED 执行安装
7. Intent.ACTION_PACKAGE_REMOVED 执行卸载
5. Intent.ACTION_NEW_OUTGOING_CALL 拨打电话
TelephonyManager.ACTION_PHONE_STATE_CHANGED 来电
6. Intent.ACTION_PACKAGE_ADDED 执行安装
7. Intent.ACTION_PACKAGE_REMOVED 执行卸载
0 0
- Android广播的学习
- Android广播的学习
- android学习九(android的广播)
- android 学习 广播机制的使用
- android 学习笔记 发送有序的广播
- 学习Android中广播的总结
- Android学习之本地广播的使用
- Android学习--广播机制
- Android广播学习笔记
- android学习之广播
- Android广播机制学习
- Android 广播学习总结
- 广播--android学习
- Android学习_广播
- Android学习笔记-----------广播
- Android 学习 广播机制
- Android 广播学习
- Android学习:广播机制
- hdu 5199 (二分||Hash||map)
- 15. PHP Object 对象
- struts2拦截器配置,strus2.xml简单配置
- Android---Service详解(一)
- Spring框架中的aop
- Android广播的学习
- #笔记#圣思园 JavaSE 第14讲——面向对象详解
- 算法学习之路-三种插入排序
- 对大数据量Excel文件自动排版、转换成PDF用于印刷出版
- 自定义旋转卫星菜单
- 文章标题
- vim plugin ctags
- 围观 Joomla, Wordpress 和 Drupal
- 字符编码笔记:ASCII,Unicode和UTF-8