一 发送标准广播
package com.example.activitytest;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.widget.Toast;
public class MyBroadcastReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Toast.makeText(context , "received in MyBroadcastReceiver",Toast.LENGTH_LONG).show();
}
}
<receiver android:name=".MyBroadcastReceiver">
<intent-filter>
<action android:name="com.example.broadcasttest.MY_BROADCAST" />
</intent-filter>
</receiver>
在MainActivity中
Button button =(Button) findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent("com.example.broadcasttest.MY_BROADCAST");
sendBroadcast(intent);
}
});
1.先定义广播接收器
2.AndroidManifest中注册
3.设置发送广播的触发点
二 发送有序广播(广播是跨进程的通信方式)
新建另一个程序BroadcastReceiver2
注意注册的name为com.example.broadcasttest.MY_BROADCAST
修改第一个项目的MainActivity中的改为 sendOrderedBroadcast(intent,null);//后面的参数为权限值。
修改优先级
<receiver android:name=".BootCompleteReceiver">
<intent-filter android:priority="100">
<action android:name="android.intent.action.BOOT_COMPLETED" />
</intent-filter>
</receiver>
在MyBroadCast中禁止广播的传播 abortBroadcast();
总结:通过优先级的设置可以改变接收到广播的次序,进而进行新的操作。