Android 中 LocalBroadcastManager 的基本使用

BroadActivity2 发广播, BroadActivity 接受.

BroadActivity 文件

package com.example.hello.broadcast;import androidx.appcompat.app.AppCompatActivity;import androidx.localbroadcastmanager.content.LocalBroadcastManager;import android.content.BroadcastReceiver;import android.content.Context;import android.content.Intent;import android.content.IntentFilter;import android.os.Bundle;import android.widget.Button;import android.widget.TextView;import com.example.hello.R;public class BroadActivity extends AppCompatActivity {         private Button btnClick;    private TextView tvTest;    private MyBroadcast myBroadcast;    @Override    protected void onCreate(Bundle savedInstanceState) {             super.onCreate(savedInstanceState);        setContentView(R.layout.activity_broad);        btnClick = findViewById(R.id.btn_click);        tvTest = findViewById(R.id.tv_test);        btnClick.setOnClickListener(v -> {                 Intent intent = new Intent(BroadActivity.this, BroadActivity2.class);            startActivity(intent);        });        myBroadcast = new MyBroadcast();        IntentFilter intentFilter = new IntentFilter();        intentFilter.addAction("com.example.hello.broadcast.BroadActivity2");        LocalBroadcastManager.getInstance(this).registerReceiver(myBroadcast, intentFilter);    }    private class MyBroadcast extends BroadcastReceiver {             @Override        public void onReceive(Context context, Intent intent) {                 switch (intent.getAction()) {                     case "com.example.hello.broadcast.BroadActivity2":                    CharSequence newText = "123";                    tvTest.setText(newText);                    break;                default:                    throw new IllegalStateException("Unexpected value: " + intent.getAction());            }        }    }    @Override    protected void onDestroy() {             super.onDestroy();        LocalBroadcastManager.getInstance(this).unregisterReceiver(myBroadcast);    }}
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:app="http://schemas.android.com/apk/res-auto"    xmlns:tools="http://schemas.android.com/tools"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:orientation="vertical"    android:padding="15dp"    tools:context=".broadcast.BroadActivity">    <Button        android:id="@+id/btn_click"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:text="@string/click" />    <TextView        android:id="@+id/tv_test"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:layout_marginTop="15dp"        android:gravity="center"        android:text="@string/app_name"        android:textColor="@color/black"        android:textSize="25sp" />LinearLayout>

BroadActivity2 文件

package com.example.hello.broadcast;import androidx.appcompat.app.AppCompatActivity;import androidx.localbroadcastmanager.content.LocalBroadcastManager;import android.content.Intent;import android.os.Bundle;import android.widget.Button;import com.example.hello.R;public class BroadActivity2 extends AppCompatActivity {         private Button btnClick;    @Override    protected void onCreate(Bundle savedInstanceState) {             super.onCreate(savedInstanceState);        setContentView(R.layout.activity_broad2);        btnClick = findViewById(R.id.btn_click);        btnClick.setOnClickListener(v -> {                 LocalBroadcastManager.getInstance(BroadActivity2.this).sendBroadcast(new Intent("com.example.hello.broadcast.BroadActivity2"));        });    }}
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:app="http://schemas.android.com/apk/res-auto"    xmlns:tools="http://schemas.android.com/tools"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:orientation="vertical"    android:padding="15dp"    tools:context=".broadcast.BroadActivity2">    <Button        android:id="@+id/btn_click"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:text="@string/click" />LinearLayout>

更多相关文章

  1. default locale 设置地区
  2. cocos2d-x android
  3. Android的文件操作
  4. Android(安卓)studio学习之TextView、EditText、Button、ImageVi
  5. android基础入门(二)——创建android工程
  6. Android(安卓)动态加载(四) - 简单demo实现
  7. 如何安装apk文件在Android仿真器中
  8. Android(安卓)Studio导入第三方类库的方法
  9. 【Android(安卓)清单文件下的 Activity各种配置详解】

随机推荐

  1. 需要从mysql数据库中获得productdata。
  2. 在本地计算机无法启动MySQL服务。错误106
  3. MySQL在Windows下不是免费的,那大家都是怎
  4. 如何使用webrequest使用Json数组绘制折线
  5. MySQL忘记root密码??重置密码方法
  6. mysql 同一表中.两个字段值互相复制,从一
  7. MySQL笔记(二)查询操作
  8. MySQL在保存数据时添加时间戳
  9. mysql中在表中insert数据时,有重复主键id
  10. mysql 树形结构查询(存储过程)