广播机制-标准广播

标准广播是一种完全异步执行的广播,广播发出后,所有的广播接收器几乎都会在同一时刻接收到这条广播消息。无法被截断。

一、新建广播接收器,右键New->Other->Broadcast Receiver,就会创建一个广播接收器

package group.chicai.study;

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.widget.Toast;

public class MyReceiver extends BroadcastReceiver {

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

        Toast.makeText(context,"接受到我的广播",Toast.LENGTH_SHORT).show();
        abortBroadcast();

    }
}

二、注册这个广播接收器的触发行为

<receiver
    android:name=".MyReceiver"
    android:enabled="true"
    android:exported="true">
    <intent-filter ><!-- 静态注册 -->
            <action android:name="group.chicai.study.MYBOASTCASE" />
    </intent-filter>
</receiver>
//动态注册
intentFilter = new IntentFilter();
intentFilter.addAction("group.chicai.study.MYBOASTCASE");
MyReceiver my = new MyReceiver();
registerReceiver(my,intentFilter);

三、发送广播

Button button8 = (Button)findViewById(R.id.button8);
button8.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
        Intent intent = new Intent("group.chicai.study.MYBOASTCASE");
        sendBroadcast(intent);
    }
});


同样的,系统上定义了很多检查状态改变的action,可以让接收器去注册这个行为,这样当系统的某些状态改变时,就会触发这些接收器了。例如:网络改变的监督-android.net.conn.CONNECTIVITY_CHANGE


首页 我的博客
粤ICP备17103704号