动态BroadcastReceiver封装

来源:互联网 发布:匈牙利算法详解 编辑:程序博客网 时间:2024/06/06 04:28

在发送前先写个权限,要不然上线的时候什么检查工具什么的,会说你的广播没有设置权限要你设置.如:

<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);}@Overrideprotected void onDestroy() {    super.onDestroy();    //销毁监听    if (mBroadcastReceiver != null) {        unregisterReceiver(mBroadcastReceiver);    }}

}

继承它的activity如何使用呢
public class MainActivity extends ReceiverActivity implements OnReceiverCallbackListener{

@Overrideprotected void onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    setContentView(R.layout.activity_main);    registerBoradcastReceiver();    setReceiverListener(this);}@Overridepublic void receiverUpdata(Intent intent) {Log.d("myf", "来数据了"+intent.getStringExtra("a"));}
0 0
原创粉丝点击