public class MainActivity extends AppCompatActivity implements View.OnClickListener {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
findViewById(R.id.btn_send).setOnClickListener(this);
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.btn_send:
Log.e(getClass().getName(),“点击R.id.btn_send”);
Intent intent = new Intent(this, SCCReceiver.class);
intent.putExtra(“scc”, “真的帅”);
sendBroadcast(intent);
break;
}
}
}
-
点击发送静态广播,实现效果如下
4.2动态广播
- 4.2.1自定义广播接受者,继承BroadcastReceiver基类并重写onReceive()即可:
public class SCCReceiver2 extends BroadcastReceiver {
public static final String ACTION = “com.scc.broadcastreceiver.SCCReceiver”;
@Override
public void onReceive(Context context, Intent intent) {
Log.e(getClass().getName(),“SCCReceiver2,传递内容:”+intent.getStringExtra(“scc”));
}
}
- 4.2.2注册广播
在代码中通过registerReceiver(BroadcastReceiver receiver, IntentFilter filter)来动态注册广播,该方法包含两个参数,receiver即我们自己定义的SCCReceiver2,IntentFilter即需要过滤的条件。
private SCCReceiver2 sccReceiver2;
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.btn_reg:
Log.e(getClass().getName(),“点击R.id.btn_reg”);
if (sccReceiver2 == null) {//防止重复注册
sccReceiver2 = new SCCReceiver2