Broadcast--本地广播

本地广播

  • android中本地广播机制,只允许广播在本程序中发送和接收,这样当在广播中包含信息时,也不会有信息的泄露的危险。
  • 本地广播的用法:使用一个LocalBroadcastManager来对广播进行管理,并提供了广播的发送和接收的方法。
  • 首先自定义广播接收器
public class MyLocalReceiver extends BroadcastReceiver {
    @Override
    public void onReceive(Context context, Intent intent) {
        Toast.makeText(context, "这是一条本地广播", Toast.LENGTH_SHORT).show();
    }
}
  • 然后使用LocalBroadcastManager在代码中对广播接收器进行注册和取消注册。
public class MainActivity extends AppCompatActivity implements View.OnClickListener{

    private Button button;
    private MyLocalReceiver myLocalReceiver;
    private LocalBroadcastManager localBroadcastManager;
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        button= (Button) findViewById(R.id.button_local);
        button.setOnClickListener(this);
        //获取实例
        localBroadcastManager=LocalBroadcastManager.getInstance(this);
        myLocalReceiver=new MyLocalReceiver();
        //设置intentFilter的值
        IntentFilter intentFilter=new IntentFilter("com.lingzhuo.LOCAL_BROADCAST");
        localBroadcastManager.registerReceiver(myLocalReceiver,intentFilter);
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        localBroadcastManager.unregisterReceiver(myLocalReceiver);
    }

    @Override
    public void onClick(View v) {
        switch (v.getId()){
            case R.id.button_local:
                Intent intent=new Intent();
                intent.setAction("com.lingzhuo.LOCAL_BROADCAST");
                localBroadcastManager.sendBroadcast(intent);
                break;

        }
    }
}
  • 效果图如下:

你可能感兴趣的:(Broadcast--本地广播)