在发送前先写个权限,要不然上线的时候什么检查工具什么的,会说你的广播没有设置权限要你设置.如:
<permission android:name="com.basebroadcastreceiver.receiver_permission" />
<uses-permission android:name="com.basebroadcastreceiver.receiver_permission" />
两个都要com.basebroadcastreceiver这个是你 项目的包名,自己换。
权限好了,那么开始发送广播吧:
Intent mIntent = new Intent(TYPE_UPDATA);
mIntent.putExtra(“a”, “我来了”);
sendBroadcast(mIntent,Manifest.permission.receiver_permission);
既然发送了就应该有接收的,下面这个ReceiverActivity 是我将广播写到里面了,方面继承它的activity使用。
/**
* Copyright (c)
* @file_name ReceiverActivity .java
* @class com.basebroadcastreceiver.BaseActivity
* @create 上午11:22:20
*/
package com.basebroadcastreceiver;
import android.app.Activity;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
/**
*
*
*
* 上午11:22:20
*
* @author ZH-SW-Mengyf
* @version 1.0.0
*/
public class ReceiverActivity extends Activity {
/ * 只用与继承该activity之间进行数据刷新的 /
protected final String TYPE_UPDATA=”up_data”;
private OnReceiverCallbackListener mReceiverListener;
/**
* 定义一个数据更新广播接收类
*/
private BroadcastReceiver mBroadcastReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
if (mReceiverListener!=null) {
mReceiverListener.receiverUpdata(intent);
}
}
};
/**
* 注册数据更新广播
*/
protected void registerBoradcastReceiver() {
IntentFilter intentFilter = new IntentFilter();
intentFilter.addAction(TYPE_UPDATA);
// 注册广播
registerReceiver(mBroadcastReceiver, intentFilter);
}
/**
* 设置广播回调监听
*/
protected void setReceiverListener(OnReceiverCallbackListener receiverListener) {
this.mReceiverListener=receiverListener;
}
/**
* 实现一个广播回调监听,只有只类才能实现,用于activity之间刷新界面数据的时候用
*
* <p></p>
* 上午11:46:10
*
* @author ZH-SW-Mengyf
* @version 1.0.0
*/
protected interface OnReceiverCallbackListener{
/**
* 广播刷新数据的时候使用
* @param intent
*/
void receiverUpdata(Intent intent);
}
@Override
protected void onDestroy() {
super.onDestroy();
//销毁监听
if (mBroadcastReceiver != null) {
unregisterReceiver(mBroadcastReceiver);
}
}
}
继承它的activity如何使用呢
public class MainActivity extends ReceiverActivity implements OnReceiverCallbackListener{
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
registerBoradcastReceiver();
setReceiverListener(this);
}
@Override
public void receiverUpdata(Intent intent) {
Log.d("myf", "来数据了"+intent.getStringExtra("a"));
}