Android学习之Android广播机制
16lz
2021-01-23
一提起广播,我们首先想到的是收音机,当我们想要收听某个广播台时只需要将收音机的频率调至广播台所在的频率即可!而Android中的广播其实和收音机非常相似,不过它没有所谓的频率,它是由系统广播一个事件,然后由其他满足某一条件的程序接收并处理这个事件!!
要在Android中实现广播,首先我们要在Manifest.xml文件中配置一个
另外一个比较重要的步骤是必须有一个类继承自BroadcastReceiver类,并复写onReceiver方法,在该方法中处理接收到广播后需要处理的事情!
下面来看一个具体的例子,有助于更好的理解广播机制是怎么一回事。
UI部分就不说了,Activity上就加了一个按钮,点击后发送广播。接收器接收到广播后在终端输出一句话。
首先看AndroidManifest.xml文件:
<?xml version="1.0" encoding="utf-8"?>
下面是Activity:
package com.gufengxiachen.broadcast;import android.app.Activity;import android.content.Intent;import android.content.IntentFilter;import android.os.Bundle;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;public class BroadCast extends Activity { /** Called when the activity is first created. */private Button sendBroadCast =null; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); sendBroadCast = (Button)findViewById(R.id.sendBroadCast); sendBroadCast.setOnClickListener(new SendBroadCast()); } class SendBroadCast implements OnClickListener{ @Override public void onClick(View v) { // TODO Auto-generated method stub Intent intent = new Intent(Intent.ACTION_EDIT); BroadCast.this.sendBroadcast(intent); } } }
下面是接收器类:
package com.gufengxiachen.broadcast;import android.content.BroadcastReceiver;import android.content.Context;import android.content.Intent;public class MyBroadCastReceiver extends BroadcastReceiver{public MyBroadCastReceiver(){}@Overridepublic void onReceive(Context context, Intent intent) {System.out.println("message receiver");}}
更多相关文章
- android webview不支持input type=file 标签解决办法
- android学习轨迹之二:Android权限标签uses-permission的书写位置
- Android中使用TabHost实现类似标签栏的效果
- Android布局优化:ViewStub标签实现延迟加载(源码解析原理)
- Android TextView 支持的HTML标签
- AndroidManifest 中original-package标签