效果是:一个MainActivity动态注册一个BroadcastReceiver,BActivity发送一个标准广播,MainActivity接收到广播后,将广播中的消息显示在MainActivity的TextView上。

MainActivity:
(实现端)
public class MainActivity extends AppCompatActivity implements IUpdateNumLitener{
private TextView mNumTextView;
private Button mStartButton;
//广播接收器
private NumReceiver mReceiver;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//3、注册广播---哪个画面需要监听广播,在哪个画面注册
mReceiver = new NumReceiver();
//4-3 在实现端实现接口,并把接口传给触发端
mReceiver.setUpdateNumLitener(this);
IntentFilter filter = new IntentFilter();
filter.addAction("org.mobiletrain.add");
registerReceiver(mReceiver, filter);
mNumTextView = (TextView)findViewById(R.id.num_textview);
mStartButton = (Button)findViewById(R.id.start_button);
mStartButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(MainActivity.this, BActivity.class);
startActivity(intent);
}
}); } @Override
protected void onDestroy() {
super.onDestroy();
//3 取消注册
unregisterReceiver(mReceiver);
} @Override
public void getText( String txt) {
mNumTextView.setText(txt);
}
} BActivity
public class BActivity extends AppCompatActivity {
private Button mAddButton;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_b);
mAddButton = (Button)findViewById(R.id.add_button);
mAddButton.setOnClickListener(new View.OnClickListener() { @Override
public void onClick(View v) {
add();
}
});
} private void add() {
//1、发送广播
Intent intent = new Intent("org.mobiletrain.add");
intent.putExtra("key","内容");
sendBroadcast(intent);
}
} 广播接收器BroadcastReceiver
(触发端)
public class NumReceiver extends BroadcastReceiver {
private IUpdateNumLitener iUpdateNumLitener;
@Override
public void onReceive(Context context, Intent intent) {
String txt = intent.getStringExtra("key");
iUpdateNumLitener.getText(txt);
}
//4-3 在实现端实现接口,并把接口传给触发端
//接收接口的方法
public void setUpdateNumLitener (IUpdateNumLitener updateNumLitener) {
this.iUpdateNumLitener = updateNumLitener;
}
}
接口
//4-1 定义接口,封装抽象方法
public interface IUpdateNumLitener {
void update();
}
 

BroadCast,BroadCastReceiver的更多相关文章

  1. Android学习笔记--Broadcast, BroadcastReceiver(广播)

    参考资料:http://www.cnblogs.com/playing/archive/2011/03/23/1992030.html 在 Android 中使用 Activity, Service, ...

  2. Android——Broadcast Receive 相关知识总结贴

    Android系统中的广播(Broadcast)机制简要介绍和学习计划 http://www.apkbus.com/android-99858-1-1.html android----BroadCas ...

  3. Android BroadcastReceiver 简介

    Android BroadcastReceiver 简介  在 Android 中使用 Activity, Service, Broadcast, BroadcastReceiver     活动(A ...

  4. 【转】GitHub 排名前 100 的安卓、iOS项目简介

    GitHub Android Libraries Top 100 简介 排名完全是根据 GitHub 搜索 Java 语言选择 (Best Match) 得到的结果, 然后过滤了跟 Android 不 ...

  5. GitHub Android Libraries Top 100 简介

    本项目主要对目前 GitHub 上排名前 100 的 Android 开源库进行简单的介绍, 至于排名完全是根据 GitHub 搜索 Java 语言选择 (Best Match) 得到的结果, 然后过 ...

  6. 2016年GitHub 排名前 100 的安卓、iOS项目简介(收藏)

    排名完全是根据 GitHub 搜索 Java 语言选择 (Best Match) 得到的结果, 然后过滤了跟 Android 不相关的项目, 所以排名并不具备任何官方效力, 仅供参考学习, 方便初学者 ...

  7. 64.GitHub 排名前100的android项目简介

    GitHub Android Libraries Top 100 简介 排名完全是根据 GitHub 搜索 Java 语言选择 (Best Match) 得到的结果, 然后过滤了跟 Android 不 ...

  8. 100个Github上Android开源库

    项目名称 项目简介 1. react-native 这个是 Facebook 在 React.js Conf 2015 大会上推出的基于 JavaScript 的开源框架 React Native, ...

  9. GitHub上排名前100的Android开源库介绍(来自github)

    本项目主要对目前 GitHub 上排名前 100 的 Android 开源库进行简单的介绍,至于排名完全是根据 GitHub 搜索 Java 语言选择 (Best Match) 得到的结果,然后过滤了 ...

随机推荐

  1. Thread.Sleep in WinRT

    Thread.Sleep in WinRT static void Sleep(int ms) {    new System.Threading.ManualResetEvent(false).Wa ...

  2. cmd命令查看局域网内计算机信息

    ping [计算机名] ping -a [IP] nbtstat -a [IP] net view arp -a nslookup www.baidu.com 查看当前dns地址 tracert [I ...

  3. 【leetcode】Isomorphic Strings(easy)

    Given two strings s and t, determine if they are isomorphic. Two strings are isomorphic if the chara ...

  4. 【leetcode】Factorial Trailing Zeroes(easy)

    Given an integer n, return the number of trailing zeroes in n!. Note: Your solution should be in log ...

  5. PHP安全编程:对输出要进行转义

    为了区分数据是否已转义,我还是建议定义一个命名机制.对于输出到客户机的转义数据,我使用$html数组进行存储,该数据首先初始化成一个空数组,对所有已过滤和已转义数据进行保存. 1 <?php 2 ...

  6. cell分割线宽度不满屏处理

    if ([cell respondsToSelector:@selector(setSeparatorInset:)]) { [cell setSeparatorInset:UIEdgeInsetsZ ...

  7. [Android Pro] 临时关闭selinux模式 setenforce 0

    setenforce 0 设置SELinux 成为permissive模式 临时关闭selinux的

  8. linux service命令常见使用方法

    service命令,顾名思义,就是用于管理Linux操作系统中服务的命令. 1. 声明:这个命令不是在所有的linux发行版本中都有.主要是在redhat.fedora.mandriva和centos ...

  9. !struct operator reload

    struct t3DObject //对象信息结构体{ int numOfVerts; // 模型中顶点的数目 int numOfFaces; // 模型中面的数目 int numTexVertex; ...

  10. JS判断是否为IE浏览器 包含了IE11

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML> <HEAD ...