[Android新手学习笔记31]-Broadcast-本地广播

时间:2022-12-13 19:06:35

使用本地广播,只能在本程序中发送和接收,安全。属于自定义广播。

  
  
  1. public class MainActivity extends AppCompatActivity {
  2.    private IntentFilter intentFilter;
  3.    private LocalReceiver localReceiver;
  4.    private LocalBroadcastManager localBroadcastManager;
  5.    @Override
  6.    protected void onCreate(Bundle savedInstanceState) {
  7.        super.onCreate(savedInstanceState);
  8.        setContentView(R.layout.activity_main);
  9.        localBroadcastManager = LocalBroadcastManager.getInstance(this); // 获取实例
  10.        Button button = (Button) findViewById(R.id.button);
  11.        button.setOnClickListener(new View.OnClickListener() {
  12.            @Override
  13.            public void onClick(View v) {
  14.                Intent intent = new Intent("top.xiexiaodong.broadcast.LOCAL_BROADCAST");
  15.                localBroadcastManager.sendBroadcast(intent); // 发送本地广播
  16.            }
  17.        });
  18.        intentFilter = new IntentFilter();
  19.        intentFilter.addAction("top.xiexiaodong.broadcast.LOCAL_BROADCAST");
  20.        localReceiver = new LocalReceiver();
  21.        localBroadcastManager.registerReceiver(localReceiver, intentFilter); // 注册本地广播监听器
  22.    }
  23.    @Override
  24.    protected void onDestroy() {
  25.        super.onDestroy();
  26.        localBroadcastManager.unregisterReceiver(localReceiver); // 一定要取消注册
  27.    }
  28.    class LocalReceiver extends BroadcastReceiver {
  29.        @Override
  30.        public void onReceive(Context context, Intent intent) {
  31.            Toast.makeText(context, "我是本地广播", Toast.LENGTH_SHORT).show();
  32.        }
  33.    }
  34. }