用intent 传数据试试,可以将bundle放在intent里,将数据放在bundle里。
解决方案 »
- Android平台下Media Recorder和Media Player同时工作的问题,高分求教,急~~~~~
- Activity的个数多了对应用程序的影响大吗?
- 一个蛮邪门的问题 有关socket客户端接受服务器端的回复的问题
- android如何获取短信中心号码(smsc)
- javaeye android 客户端源码
- 学习Android的步骤!比如mvc 先v在c后m,一步一步,求总结!越详细越好!
- android按键事件到底怎么回事?
- 自定义适配器中getView 中更改super.getView()返回结果的异常问题
- android 用opencv录制.flv的视频,在调用jni(ffmpeg播放的时候 播放速度太快)
- as更新后运行项目出现错误
- 添加重力感应后 “应用程序意外停止,请重试”
- 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;
}