现在的位置: 首页 > 综合 > 正文

android—广播接收者BroadcastReceiver的应用开发范例

2018年09月02日 ⁄ 综合 ⁄ 共 1349字 ⁄ 字号 评论关闭

BroadcastReceiver:广播接收者,及是接收来自android内部的广播,对接收到的广播进行选择处理,

想要接收什么样的广播和内部定义的广播匹配,匹配则进行该做的处理操作,没有匹配则无操作,就比如在玩

游戏的同时接收到短信事件,对此你要做什么操作,是想看短信内容还是不做什么处理继续玩游戏,这就是广

播的用途,android内部的四大内置类之一:BroadcastReceiver

 下面介绍广播接收者的功能用途:

1.首先实现功能是:有一个发送广播的按钮,编写的广播接收者对其处理。

则布局代码很简单只是一个按钮

2.编写广播接收类Reeiver,继承BroadcastReceiver

 

public class Receiver extends BroadcastReceiver {

	@Override
	public void onReceive(Context context, Intent intent) {
		System.out.println("哈哈,Received");
	}

}

onReceive()方法是对接收匹配的广播的处理操作,此时我只是输出一个文本,提示我已经接收到广播信号

3.因BroadcastReceiver是android内置类就如Activity类一样需要在AndroidManifest.xml文件注册

 

<receiver android:name=".Receiver">
           <intent-filter >
               <action android:name="android.intent.action.name"/>
           </intent-filter>
</receiver>

其中action的name属性是自己定义的名字,想要匹配广播则发送的广播和此名称一致即可对其处理
4.main.xml 代码

点击按钮设置intent的action和上面设置一致及:android.intent.action.name

则接收者就可接收到广播对其操作

sendBroadcast():发送广播

public class MainActivity extends Activity {
	private Button send;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        send=(Button) this.findViewById(R.id.send);
        send.setOnClickListener(new OnClickListener() {
			
			public void onClick(View v) {
				Intent i=new Intent();
				i.setAction("android.intent.action.name");
				sendBroadcast(i);
			}
		});
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.activity_main, menu);
        return true;
    }

    
}

可想结果则会输出:哈哈,Received

抱歉!评论已关闭.