android组件之间的通信有多种实现方式,Broadcast就是其中一种。在activity和fragment之间的通信,broadcast用的更多本文以一个activity为例。

效果如图:

布局文件:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/hello_world" />

    <Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/textView1"
        android:layout_marginLeft="27dp"
        android:layout_marginTop="26dp"
        android:text="发送广播" />

</LinearLayout>

MainActivity.java

public class MainActivity extends Activity {

    private Button btn;
    private TextView tv;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        tv = (TextView) this.findViewById(R.id.textView1);

        //接收广播
        LocalBroadcastManager broadcastManager = LocalBroadcastManager
                .getInstance(MainActivity.this);
        IntentFilter intentFilter = new IntentFilter();
        intentFilter.addAction("com.example.test1");
        BroadcastReceiver mItemViewListClickReceiver = new BroadcastReceiver() {
            @Override
            public void onReceive(Context context, Intent intent) {
                tv.setText("1111");
            }
        };
        broadcastManager.registerReceiver(mItemViewListClickReceiver,
                intentFilter);

        btn = (Button) this.findViewById(R.id.button1);
        btn.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {

                //发送广播
                Intent intent = new Intent("com.example.test1");
                LocalBroadcastManager.getInstance(MainActivity.this)
                        .sendBroadcast(intent);
            }
        });
    }
}

最新文章

  1. mysql_索引原理及优化
  2. Java并发编程(三)后台线程(Daemon Thread)
  3. Sticky Footer (让页脚永远停靠在页面底部,而不是根据绝对位置)
  4. cf519D . A and B and Interesting Substrings 数据结构map
  5. 使用git整体流程
  6. C#中的 ref 传进出的到底是什么 解惑篇
  7. WPF中利用DynamicDataDisplay快速实现示波器功能
  8. Oracle本地,远程,分布式登录
  9. 10409 - Die Game
  10. 『奇葩问题集锦』Cannot find module &#39;webpack/lib/node/NodeTemplatePlugin&#39;
  11. 计算任意位数的Pi
  12. springmvc 传递和接收数组参数
  13. django目录下的各文件
  14. java设计模式_单例
  15. springboot 学习进度
  16. CURL错误代码及含义
  17. cmd强行终止进程
  18. 输入三个double型的数据,放入到a,b,c三个变量中去,使用条件结构与交换逻辑将这三个变量中的值从小到大排列。
  19. PHPCMS V9开发文档
  20. 在ubuntu bionic下对基于qemu的arm64进行linux内核5.0.1版本的编译和运行

热门文章

  1. bzoj3038上帝造题的七分钟2
  2. java开发笔记
  3. jqGrid 使用心得
  4. [Luogu 1516] 青蛙的约会
  5. filter和listener的生命周期
  6. requestAnimationFrame之缓动的应用
  7. 解决 Popup 位置不随窗口移动更新的问题
  8. Docker常见仓库CentOS
  9. 使用Boost program_options控制程序输入
  10. Android简易实战教程--第四十四话《ScrollView和HorizontalScrollView简单使用》