Android(安卓)中 LocalBroadcastManager 的基本使用
16lz
2021-12-04
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>
更多相关文章
- default locale 设置地区
- cocos2d-x android
- Android的文件操作
- Android(安卓)studio学习之TextView、EditText、Button、ImageVi
- android基础入门(二)——创建android工程
- Android(安卓)动态加载(四) - 简单demo实现
- 如何安装apk文件在Android仿真器中
- Android(安卓)Studio导入第三方类库的方法
- 【Android(安卓)清单文件下的 Activity各种配置详解】