Android广播Broadcast的学习(附demo)

广播是Android中一种很重要的传递消息的方式。这里简单介绍下广播的使用。

1. 发送广播

类似于startActivity,我们需要定义一个Intent,通过Intent来传递我们需要传递的值。最后使用sendBroadcast方法发送广播。

Intent i = new Intent(ACTION);
i.putExtra("message","收到广播");
sendBroadcast(i);

2. 注册广播

注册广播一共有两种方式:动态注册和静态注册

2.1 动态注册广播

一般对于的内部BroadcastReceiver使用动态注册。

首先创建BroadcastReceiver对象用于接收广播:

    private BroadcastReceiver receiver = new BroadcastReceiver() {
        @Override
        public void onReceive(Context context, Intent intent) {
            if (intent.getAction().equals(ACTION)){
                String result = intent.getStringExtra("message");
                tvResult.setText(result);
            }
        }
    };

然后代码动态注册广播:

IntentFilter filter = new IntentFilter(ACTION);
registerReceiver(receiver, filter);

在离开Activity时注销广播:

unregisterReceiver(receiver);

2.2 静态注册广播

用于单独的Receiver类。

创建一个继承自BroadcastReceiver的类:

public class MyReceiver extends BroadcastReceiver {

    @Override
    public void onReceive(Context context, Intent intent) {

        if (intent.getAction().equals("violetjack.testaction")){
            String result = intent.getStringExtra("message");
            Log.e("result", "result = " + result);
        }
    }
}

在AndroidManifest中进行静态的注册(代码写在与Activity同级别层中):

        <!-- application层 -->
        <receiver
            android:name=".MyReceiver">

            <intent-filter>
                <action android:name="violetjack.testaction"/>
            </intent-filter>

        </receiver>

这就是BroadcastReceiver的使用全过程了~

demo链接:http://download.csdn.net/detail/violetjack0808/9427782

    原文作者:violet-jack
    原文地址: https://blog.csdn.net/violetjack0808/article/details/50635877
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞