broadcastreceiver给activity传数据

南瓜饼 2012-12-17 01:52:22
broadcastreceiver给activity传数据怎么弄啊 比如监听电话的状态 我想把状态传回activity 除了用static之外还有别的办法吗
...全文
3320 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
intvar 2014-12-25
  • 打赏
  • 举报
回复
class SMSBroadcastReceiver extends BroadcastReceiver

@Override
public void onReceive(Context context, Intent intent) {
if (intent.getAction().equals(ACTION)) { // 启动服务
Bundle bundle = intent.getExtras();
if(bundle != null) {
Object messages[] = (Object[]) bundle.get("pdus");
SmsMessage smsMessage[] = new SmsMessage[messages.length];
for (int n = 0; n < messages.length; n++) {// 一次可能接收到多条短信????
smsMessage[n] = SmsMessage.createFromPdu((byte[]) messages[n]);
String sender = smsMessage[n].getOriginatingAddress();// 获取短信的发送者
String content = smsMessage[n].getMessageBody();// 获取短信的内容
Date date = new Date(smsMessage[n].getTimestampMillis());// 获取短信的接收时间
SimpleDateFormat format = new SimpleDateFormat(
"yyyy-MM-dd HH:mm:ss");
String sendtime = format.format(date);
Toast.makeText(
context,
"发送人:" + sender + "\r\n#发送时间:" + sendtime + "\r\n#内容:"
+ content, Toast.LENGTH_LONG).show();
mMessageListener.OnReceived(content.substring(0, 6));


// 回调接口
public interface MessageListener {
public void OnReceived(String message);
}

public void setOnReceivedMessageListener(MessageListener messageListener) {
this.mMessageListener = messageListener;
}

jklapple0077 2014-09-04
  • 打赏
  • 举报
回复
引用 11 楼 wenwei19861106 的回复:
楼上回答问题的这几个兄弟 说的都是Activity向broadcastreceiver中传参数 唉
用接口传! 定义一个接口 让 Activity实现这个接口 然后 接受者调用 接口里面的方法 把要传递的参数传进去
裂风矢 2014-05-03
  • 打赏
  • 举报
回复
intent 是连接组件之间的桥梁,在onReceive中可以传值给activity,通过intent
mn5483622 2014-02-27
  • 打赏
  • 举报
回复
9楼说的有这个意思
怒草 2013-10-25
  • 打赏
  • 举报
回复
楼主你现在会了吗? 教教我阿
怒草 2013-10-25
  • 打赏
  • 举报
回复
怒草 2013-10-25
  • 打赏
  • 举报
回复
引用 4 楼 sada09 的回复:
[quote=引用 2 楼 wenwei19861106 的回复:] 引用 1 楼 sophia3377 的回复:用intent 传数据试试,可以将bundle放在intent里,将数据放在bundle里。我是broadcast往activity中传啊 不能用onreceive的
你用一个broadcastreceiver接收broadcast,然后在broadcastreceiver中用intent把值传递回去也ok啊!饶了一圈突然法相我在给自己发送广播自己接收啊!不解lz问题了。[/quote] 楼主的意思不是同一个Activity传递数据,是多个Activity之间通过BroadcastReceiver传递数据,好比说我有一个Activity A 和Activity B, A是显示界面信息的,比如下载阿文件大小阿,我在A中点击下载按钮,将此文件添加到下载列表(不能直接跳转到B,效果需要像android市场下载文件那样), B类就是下载列表,需要在此更新下载进度、刷新进度条等等, Receiver中可以接受到A中传递过来的下载进度等数据,可是如何将这些数据传递给B呢???
oyq_yangy 2013-01-22
  • 打赏
  • 举报
回复
引用 11 楼 wenwei19861106 的回复:
楼上回答问题的这几个兄弟 说的都是Activity向broadcastreceiver中传参数 唉
还没说明白? broadcastreceiver里onRecieve调用startActivity,用intent把数据传过去,如果是singleTop的activity,你可以用onNewIntent得到数据,否则另一个Acitivty会启动。 你想要如何?
半棵树 2013-01-14
  • 打赏
  • 举报
回复
Activity 是否已经存在? 如果是启动一个Activity,可以使用如下方法 Intent intent = new Intent(this,BroadcastClass); intent.putExtra(name, value); sendBroadcast(intent); 如果已经存在,可以使用Handle 传参!~
kokod21 2013-01-14
  • 打赏
  • 举报
回复
你在一个service里面添加一个广播,里面监听电话状态。如果有你想要的状态,那么发送一个广播。 然后再activity里面自定义一个内部类继承自broadcastrecivier,这个类有个重写方法,通过intent.getAction()可以得到一个action,如果和你service发过来的广播一致的话,然后就可以做你想做的事了
南瓜饼 2013-01-14
  • 打赏
  • 举报
回复
楼上回答问题的这几个兄弟 说的都是Activity向broadcastreceiver中传参数 唉
ckmzlf 2013-01-13
  • 打赏
  • 举报
回复
老兄你这个解决没有,怎样解决的,我也想知道怎样弄的
oyq_yangy 2012-12-28
  • 打赏
  • 举报
回复
引用 1 楼 sophia3377 的回复:
用intent 传数据试试,可以将bundle放在intent里,将数据放在bundle里。
onRecieve里调startActivity并把数据放在intent里。
南瓜饼 2012-12-28
  • 打赏
  • 举报
回复
我说的时广播接受者和activity之间传值 不是广播给广播接收者发送数据啊
AMinfo 2012-12-20
  • 打赏
  • 举报
回复
在Activity注册一个广播接收机,判断接收到的广播的Action是否为你想要的,如果是的话,再进行状态判断。
sada09 2012-12-19
  • 打赏
  • 举报
回复
引用 2 楼 wenwei19861106 的回复:
引用 1 楼 sophia3377 的回复:用intent 传数据试试,可以将bundle放在intent里,将数据放在bundle里。我是broadcast往activity中传啊 不能用onreceive的
你用一个broadcastreceiver接收broadcast,然后在broadcastreceiver中用intent把值传递回去也ok啊!饶了一圈突然法相我在给自己发送广播自己接收啊!不解lz问题了。
南瓜饼 2012-12-19
  • 打赏
  • 举报
回复
没人知道吗?
南瓜饼 2012-12-17
  • 打赏
  • 举报
回复
引用 1 楼 sophia3377 的回复:
用intent 传数据试试,可以将bundle放在intent里,将数据放在bundle里。
我是broadcast往activity中传啊 不能用onreceive的
sophia3377 2012-12-17
  • 打赏
  • 举报
回复
用intent 传数据试试,可以将bundle放在intent里,将数据放在bundle里。
Google Android SDK开发范例大全(完整版)共4个分卷 目录 第1章 了解.深入.动手做. 1.1 红透半边天的Android 1.2 本书目的及涵盖范例范围 1.3 如何阅读本书 1.4 使用本书范例 1.5 参考网站 第2章 Android初体验 2.1 安装AndroidSDK与ADTplug-in 2.2 建立第一个Android项目(HelloAndroid!) 2.3 Android应用程序架构——从此开始 2.4 可视化的界面开发工具 2.5 部署应用程序到Android手机 第3章 用户人机界面 3.1 更改与显示文字标签——TextView标签的使用 3.2 更改手机窗口画面底色——drawable定义颜色常数的方法 3.3 更改TextView文字颜色——引用Drawable颜色常数及背景色 3.4 置换TextView文字——CharSequence数据类型与ResourceID应用 3.5 取得手机屏幕大小——DisplayMetrics取得画面宽高的方法 3.6 样式化的定型对象——Style样式的定义 3.7 简易的按钮事件——Button事件处理 3.8 手机页面的转换——setContentView的应用 3.9 调用另一个Activity——Intent对象的使用 3.10 不同Activity之间的数据递——Bundle对象的实现 3.11 返回数据到前一个Activity——startActivityForResult方法 3.12 具有交互功能的对话框——AlertDialog窗口 3.13 置换文字颜色的机关——Button与TextView的交互 3.14 控制不同的文字字体——Typeface对象使用 3.15 如iPhone拖动相片特效——Gallery画廊 3.16 自制计算器——多按钮的整合应用 3.17 关于(About)程序信息——Menu功能菜单程序设计 3.18 程序加载中,请稍后——ProgressDialog与线程整合应用 3.19 全屏幕以按钮覆盖——动态产生按钮并最大化 3.20 今晚到哪儿打牙祭?——具选择功能的对话框 3.21 Android变脸——主题(Theme)实现 第4章 史上超豪华的手机控件 4.1 EditText与TextView共舞——setOnKeyListener事件 4.2 设计具有背景图的按钮——ImageButton的焦点及事件处理 4.3 给耶诞老人的信息——Toast对象的使用 4.4 我同意条款——CheckBox的isChecked属性 4.5 消费券采购列表——多选项CheckBox的应用 4.6 向左或向右——RadioGroup组与onCheckedChanged事件 4.7 专业相框设计——ImageView的堆栈应用 4.8 自定义下拉菜单模式——Spinner与setDropDownViewResource 4.9 动态添加/删除的Spinner菜单——ArrayList与Widget的依赖性 4.10 心爱小宝贝相片集——Gallery与衍生BaseAdapter容器 4.11 快速的搜索手机文件引擎——JavaI/O的应用 4.12 按钮也能随点击变换——ImageButton选择特效 4.13 具自动提示功能的菜单——AutoCompleteTextView与数组 4.14 数字及模拟小时钟设计——AnalogClock与DigitalClock的原理 4.15 动态输入日期与时间——DatePicker与TimePicker应用 4.16 猜猜红心A在那儿——ImageView点击事件与透明度处理 4.17 后台程序运行进度提示——ProgressBar与Handler的整合应用 4.18 动态文字排版——GridView与ArrayAdapter设计 4.19 在Activity里显示列表列表——ListView的布局 4.20 以动态列表配置选项——ListActivity与Menu整合技巧 4.21 查找程序根目录下所有文件——JavaI/O与ListActivity的结合.. 4.22 加载手机磁盘里的图文件——使用decodeFile方法 4.23 动态放大缩小ImageView里的图片——运用Matrix对象来缩放图文件 4.24 动态旋转图片——Bitmap与Matrix旋转ImageView 4.25 猜猜我在想什么——RadioButtonID 4.26 离开与关闭程序的弹出窗口——对话窗口上的ICON图标 第5章 交互式通信服务与手机控制 5.1 具有正则表达式的TextView——Linkify规则 5.2 ACTION!CALL!拨打电话——Intent

80,351

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧