Intent实现Broadcast Receiver 实例

使用BroadcastReceiver步骤:

1)编写类继承BroadcastReceiver,复写onRecevier()方法。

    2) 在AndroidManifest.xml文件中注册BroadcastReceiver

    3)构建Intent对象

    4)调用sengBroadcast()方法发送广播

1、编写类继承BroadcastReceiver,复写onRecevier()方法。

创建com.example.receiver包,构建MyReceiver类,复写onRecevier()方法,用于接收广播消息。

package com.example.receiver;

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.util.Log;

public class MyReceiver extends BroadcastReceiver{
	private static final String brocast = "MyReceiver";

	@Override
	public void onReceive(Context context, Intent intent) {
		// TODO Auto-generated method stub
		Log.i(brocast, "onReceive");
	}
}
2、 在AndroidManifest.xml文件中注册BroadcastReceiver
<activity android:name="com.example.receiver.MyReceiver">
     <intent-filter >
           <action android:name="com.example.receiver.ACTION"/>
     </intent-filter>
</activity>
说明:

com.example.receiver.ACTION:广播类型。在系统启动时,就会注册一系列的广播。可自定义,也可使用系统广播类型。

3、发送广播:

构建Intent对象 并调用sengBroadcast()方法发送广播。

package com.example.test17;

import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.app.Activity;
import android.content.Intent;

public class MainActivity extends Activity {

	protected static final String action = "com.example.receiver.ACTION";
	private Button myBroadcastBtn = null;
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		
		myBroadcastBtn = (Button)findViewById(R.id.myBroadcastBtn);
		myBroadcastBtn.setOnClickListener(new OnClickListener(){

			@Override
			public void onClick(View v) {
				// TODO Auto-generated method stub
				Intent intent = new Intent();
				intent.setAction(action);
				sendBroadcast(intent);
			}	
		});
	}
}

说明:

intent.setAction(action); 指定发送广播到action所指定的类型,action的类型值在AndroidManifest.xml文件中定义:

protected static final String action = "com.example.receiver.ACTION";

当查找到匹配的广播类型(com.example.receiver.ACTION),就是指定该类型所在包(com.example.receiver.MyReceiver)下的onReceive() 方法接收消息。





评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值