Android安卓组件——Broadcast.

广播分为两种,标准广播和有序广播

1.标准广播

广播发出后所有接受器会在同一时间接收到这条广播的消息,无先后顺序。无法被截断。

2.有序广播

广播发出后,同一时间只有一个接收器可以接收到消息,有序,且可以被前面接受器的广播拦截。

广播监听器

(1)动态注册——代码中注册。

需要注意的是 动态注册广播监听器有一个缺点,注册逻辑写在onCreate()中,即只能在app启动后才可以接收到广播。

第一步、创建一个MyBrodestReciver广播接受器

  public class MyBrodestReciver extends BroadcastReceiver{
        @Override
        public void onReceive(Context context, Intent intent) {
            //判断action是否为添加的action,如果是则toast
            String action = intent.getAction();
            if(action.equals("one")){
                Toast.makeText(context,"发送了一个广播",Toast.LENGTH_LONG).show();
            }
        }
    }

第二步、添加一个action

//第二步.添加一个action
        //新建intentFilter对象 通过addAction添加广播
        IntentFilter intentFilter = new IntentFilter();
        intentFilter.addAction("one");

第三步、注册广播

//第三步.注册广播
        MyBrodestReciver myBrodestReciver = new MyBrodestReciver();
        registerReceiver(myBrodestReciver,intentFilter);

第四步、发送广播

   //使用点击事件发送一个广播
        Button send = findViewById(R.id.button);
        send.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Intent intent = new Intent();
                intent.setAction("one");
                sendBroadcast(intent);
            }
        });
(2)静态注册——AndroidManifest中注册。

新建一个BroadCastReceiver

右击包名->new->other->BroadCastReceiver

会在Mainifiest中自动添加广播代码。

Exported:是否允许接收到本程序以外的广播;

Enable:是否启用广播接受器

Android安卓组件——Broadcast._第1张图片

在Mainifiest中添加需要获取的权限。

    
//接收系统开机广播

Android安卓组件——Broadcast._第2张图片

 

需要注意的是 onReceive()方法中不可以添加过多的逻辑或进行耗时操作。

  • Broadcast——本地广播

已被废弃,替换为LiveData

你可能感兴趣的:(网络,android,java,开发语言,ui)