如何将BroadcastReceiver中的信息传到Activity中
方法:在BroadcastReceiver中定义一个接口,在Activity中定义一个BroadcastReceiver的对象,采用动态注册,在Activity中定义接口中的方法并通过BroadcastReceiver对象调用该方法,具体代码如下:
自定义BroadcastReceiver:
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.widget.Toast; public class MyBroadcastReceiver extends BroadcastReceiver {
private Handle handle;
@Override
public void onReceive(Context context, Intent intent) {
// TODO: This method is called when the BroadcastReceiver is receiving
// an Intent broadcast.
String msg=intent.getStringExtra("msg");
handle.handle(msg);//调用接口中的方法 }
public interface Handle{ //接口定义
public void handle(String s);
}; public void setHandle(Handle handle)
{
this.handle=handle;
}
}
Activity:
import androidx.appcompat.app.AppCompatActivity; import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.os.Bundle;
import android.os.IBinder;
import android.view.View;
import android.widget.Button;
import android.widget.Toast; public class MainActivity extends AppCompatActivity implements MyBroadcastReceiver.Handle { private Button broad=null;
private MyBroadcastReceiver receiver;//定义广播接收器对象
private ServiceConnection serviceConnection =new ServiceConnection() { protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main); broad=(Button)super.findViewById(R.id.broad); receiver=new MyBroadcastReceiver();
IntentFilter intentFilter = new IntentFilter();
intentFilter.addAction("android.intent.action.EDIT");
registerReceiver(receiver,intentFilter);//动态注册 receiver.setHandle(this);
} broad.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent it=new Intent();
it.setAction("android.intent.action.EDIT"); it.putExtra("msg","广播已接收");
MainActivity.this.sendBroadcast(it);
}
});
} @Override
//实现接口中的方法
public void handle(String s) { Toast.makeText(this,s,Toast.LENGTH_SHORT).show();
}
protected void onDestroy() {
super.onDestroy();
unregisterReceiver(receiver); //注销广播接收器
}
}
注意一点就是这里要使用动态注册,不能用静态注册,因此不需要去配置AndroidMainifest.xml文件
如何将BroadcastReceiver中的信息传到Activity中的更多相关文章
- c#.NET中日志信息写入Windows日志中解决方案
1. 目的应用系统的开发和维护离不开日志系统,选择一个功能强大的日志系统解决方案是应用系统开发过程中很重要的一部分.在.net环境下的日志系统解决方案有许多种,log4net是其中的佼佼者.在Wind ...
- laravel5.4将excel表格中的信息导入到数据库中
本功能是借助 Maatwebsite\Excel 这个扩展包完成的,此扩展包的安装过程请参考上篇博文:http://www.cnblogs.com/zhuchenglin/p/7122946.html ...
- 在fragment中获取他附着的activity中的变量
final String data=(关联的activity类)getActivity().getData(); getData();自定义的方法
- C#_从DataTable中检索信息
C#_从DataTable中检索信息 存在于内存中的虚拟表DataTable,绑定在数据显示控件后,如果想在再检索其中某些信息,可以利用DataTable.Select方法进行检索,避免了重复的读取数 ...
- (转)Android在子线程中更新Activity中UI的方法
转:http://blog.sina.com.cn/s/blog_3fe961ae0100mvc5.html 在Android平台下,进行多线程编程时,经常需要在主线程之外的一个单独的线程中进行某些处 ...
- 在多个Activity中回传值(startActivityForResult())
业务逻辑: MainActivity打开A,A打开B,B把值传回MainActivity.适用在多个Activity中回传值. 实例:微信中选择国家-->省份-->城市的实现 实现方式分析 ...
- Android笔记(二十) Activity中的跳转和值传递
我们知道,一个APP是由若干个Activity组成的,那么各个Acitivity中肯定需要进行跳转以及传递数值以保证App的运行,现总结一下多个Activity之间的跳转和值传递. 显式Intent跳 ...
- Activity中与ListActivity中使用listview区别
Activity中与ListActivity中使用listview区别 一.Activity中与ListActivity中使用listview区别(本身没多大区别,只是ListActivity在lis ...
- 如何获取url中的参数并传递给iframe中的报表
在使用报表软件时,用户系统左边一般有目录树,点击报表节点就会在右侧网页的iframe中显示出报表,同时点击的时候也会传递一些参数给网页,比如时间和用户信息等.如何使网页中的报表能够获取到传递过来的参数 ...
随机推荐
- Tomcat异常:UnsupportedClassVersionError unsupported major.minor version 51.0 unable to load class [dup
案例 今天把项目换成了jdk1.8,启动tomcat报如下异常: UnsupportedClassVersionError unsupported major.minor version 51.0 u ...
- 【大白话系列】MySQL 学习总结 之 初步了解 InnoDB 存储引擎的架构设计
一.存储引擎 上节我们最后说到,SQL 的执行计划是执行器组件调用存储引擎的接口来完成的. 那我们可以理解为:MySQL 这个数据库管理系统是依靠存储引擎与存放数据的磁盘文件进行交互的. 那么 MyS ...
- LeetCode 664. Strange Printer 奇怪的打印机(C++/Java)
题目: There is a strange printer with the following two special requirements: The printer can only pri ...
- GORM入门指南
gorm是一个使用Go语言编写的ORM框架.它文档齐全,对开发者友好,支持主流数据库. gorm介绍 Github GORM 中文官方网站内含十分齐全的中文文档,有了它你甚至不需要再继续向下阅读本文. ...
- springcloud微服务feign组件报错
今天在用springcloud搭建微服务时,利用feign做通讯组件,结果报错 java.lang.IllegalStateException: Failed to introspect Class ...
- Mysql 导入导出备份
恢复MySQL服务器上面的txt格式文件(需要FILE权限,各数据值之间用"制表符"分隔) 1.导入数据库服务器上的txt文件 mysql>load data infil ...
- chrome报错:您目前无法访问 因为此网站使用了 HSTS
chrome报错:您目前无法访问 因为此网站使用了 HSTS 其然: 现象 :访问github仓库报错'您目前无法访问XXXX 因为此网站使用了 HSTS' 解决方法:清理HSTS的设定,重新获取.c ...
- Mac将本地文件上传到Centos7(Linux)服务器上
1.打开终端,输入命令: scp /Users/codez/Downloads/jdk-8u144-linux-x64.tar.gz root@139.224.235.xxx:/root/java/j ...
- android button的selector
实现按钮的selector <?xml version="1.0" encoding="utf-8"?> <selector xmlns:an ...
- js—求数组中的最大最小值
参考链接:https://www.w3cplus.com/javascript/calculate-the-max-min-value-from-an-array.html Math.min.appl ...