broadcastreceiver给activity传数据 用intent 传数据试试,可以将bundle放在intent里,将数据放在bundle里。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我是broadcast往activity中传啊 不能用onreceive的 你用一个broadcastreceiver接收broadcast,然后在broadcastreceiver中用intent把值传递回去也ok啊!饶了一圈突然法相我在给自己发送广播自己接收啊!不解lz问题了。 在Activity注册一个广播接收机,判断接收到的广播的Action是否为你想要的,如果是的话,再进行状态判断。 我说的时广播接受者和activity之间传值 不是广播给广播接收者发送数据啊 onRecieve里调startActivity并把数据放在intent里。 Activity 是否已经存在?如果是启动一个Activity,可以使用如下方法Intent intent = new Intent(this,BroadcastClass); intent.putExtra(name, value); sendBroadcast(intent);如果已经存在,可以使用Handle 传参!~ 楼上回答问题的这几个兄弟 说的都是Activity向broadcastreceiver中传参数 唉 还没说明白?broadcastreceiver里onRecieve调用startActivity,用intent把数据传过去,如果是singleTop的activity,你可以用onNewIntent得到数据,否则另一个Acitivty会启动。你想要如何? 你用一个broadcastreceiver接收broadcast,然后在broadcastreceiver中用intent把值传递回去也ok啊!饶了一圈突然法相我在给自己发送广播自己接收啊!不解lz问题了。楼主的意思不是同一个Activity传递数据,是多个Activity之间通过BroadcastReceiver传递数据,好比说我有一个Activity A 和Activity B, A是显示界面信息的,比如下载阿文件大小阿,我在A中点击下载按钮,将此文件添加到下载列表(不能直接跳转到B,效果需要像android市场下载文件那样), B类就是下载列表,需要在此更新下载进度、刷新进度条等等, Receiver中可以接受到A中传递过来的下载进度等数据,可是如何将这些数据传递给B呢??? intent 是连接组件之间的桥梁,在onReceive中可以传值给activity,通过intent 用接口传! 定义一个接口 让 Activity实现这个接口 然后 接受者调用 接口里面的方法 把要传递的参数传进去 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; } 新手求助,PreferenceFragment在低版本下如何调用 WIFI 与 GPRS 所触发的广播问题 StatusBar透明怎么做? android 中addProximityAlert()大家谁用过呢?我想多加几个监听点怎么实现? android 错误谁帮我看看(做过刀锋效果的 也可以进来) 手机连接PC机 GUI求助!PropertyAnimation ListView中EditText的问题 android 混淆打包半小时还没结束 app在手机上不起作用 添加重力感应后 “应用程序意外停止,请重试” Android 新的Activity的onCreat不显示
onRecieve里调startActivity并把数据放在intent里。
如果是启动一个Activity,可以使用如下方法
Intent intent = new Intent(this,BroadcastClass);
intent.putExtra(name, value);
sendBroadcast(intent);
如果已经存在,可以使用Handle 传参!~
还没说明白?
broadcastreceiver里onRecieve调用startActivity,用intent把数据传过去,如果是singleTop的activity,你可以用onNewIntent得到数据,否则另一个Acitivty会启动。你想要如何?
楼主的意思不是同一个Activity传递数据,是多个Activity之间通过BroadcastReceiver传递数据,好比说我有一个Activity A 和Activity B, A是显示界面信息的,比如下载阿文件大小阿,我在A中点击下载按钮,将此文件添加到下载列表(不能直接跳转到B,效果需要像android市场下载文件那样), B类就是下载列表,需要在此更新下载进度、刷新进度条等等, Receiver中可以接受到A中传递过来的下载进度等数据,可是如何将这些数据传递给B呢???
用接口传! 定义一个接口 让 Activity实现这个接口 然后 接受者调用 接口里面的方法 把要传递的参数传进去
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;
}