1 Broastcast 简介

Broadcast(广播)是 Android 中一种广泛运用的在应用程序之间传输信息的机制。使用 Broadcast 能够很方便得实现进程间通讯,一端通过 sendBroadcast(intent) 广播消息,另一端通过 registerReceiver(myReceiver) 注册 BroadcastReceiver(接收器)接收消息。

2 clien_A 代码

(1)主 Activity

MainActivity.java

package com.zhyan8.client_A;import android.content.Intent;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.view.View;import android.widget.Button;import android.widget.EditText;public class MainActivity extends AppCompatActivity {    private EditText et_msg;    private Button btn_send;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        init();    }    private void init() {        et_msg = (EditText) findViewById(R.id.et_msg);        btn_send = (Button) findViewById(R.id.btn_send);        btn_send.setOnClickListener(cl);    }    View.OnClickListener cl = new View.OnClickListener() {        @Override        public void onClick(View v) {            if (v.getId()==R.id.btn_send) {                String str = et_msg.getText().toString();                Intent intent = new Intent();                intent.setAction("com.zhyan8.client_A.MainActivity");                Bundle bundle = new Bundle();                bundle.putString("msg_A", "from client_A, msg: " + str);                intent.putExtras(bundle);                sendBroadcast(intent);            }        }    };}

(2)布局 

activity_main.xml

<?xml version="1.0" encoding="utf-8"?>        

界面如下:

3 client_B 代码

(1)主 Activity

MainActivity.java

package com.zhyan8.client_B;import android.content.BroadcastReceiver;import android.content.Context;import android.content.Intent;import android.content.IntentFilter;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.widget.TextView;public class MainActivity extends AppCompatActivity {    private TextView tv_msg;    private IntentFilter intentFilter;    private MyReceiver myReceiver;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        init();    }    private void init() {        tv_msg = (TextView) findViewById(R.id.tv_msg);        intentFilter = new IntentFilter();        intentFilter.addAction("com.zhyan8.client_A.MainActivity");        myReceiver = new MyReceiver();        registerReceiver(myReceiver, intentFilter);    }    private class MyReceiver extends BroadcastReceiver {        @Override        public void onReceive(Context context, Intent intent) {            Bundle bundle = intent.getExtras();            String str = bundle.getString("msg_A");            tv_msg.setText(str);        }    }}

(2)布局

 activity_main.xml

<?xml version="1.0" encoding="utf-8"?>    

界面如下:

4 效果展示

在 client_A 端编辑文本【Qwert】,如下:

client_A 端发送消息

点击【发送】按钮后,在client_B端收到消息【from client_A, msg: Qwert】,如下:

client_B 端接收消息

更多相关文章

  1. android "Only the original thread that created a view hierar
  2. Android(安卓)SDK下载和更新失败的解决方法!!!
  3. android技术分析
  4. Android实现手写板和涂鸦功能
  5. Handler面试知识小结
  6. 【起航计划 016】2015 起航计划 Android(安卓)APIDemo的魔鬼步伐
  7. android flutter 混合开发初探
  8. Android消息循环机制
  9. EventBus源码追踪

随机推荐

  1. 2011.06.20——— android listview的拖
  2. Android中自定义对话框小结
  3. 简单总结RectF、Rect 和Matrix ,还有Pain
  4. android 执行shell命令代码
  5. android 开发中常用颜色,以及一些颜色的代
  6. 让你的Android彻底裸奔吧!! -- 瘫痪Andro
  7. Android中的硬件加速
  8. Android双屏异显
  9. 【Android】21.3 动画
  10. android入门知识:android使用全局变量