怎么把Broadcast Receiver里面获取的数据传给Activity

2025-04-24 17:12:43
推荐回答(2个)
回答1:

一、解决:
1)定义一个接口 让 Activity实现这个接口;
2)接受者调用接口里面的方法把要传递的参数传进去。

二、activity书写:
package com.ht.dianliang;

import android.app.Activity;
import android.content.Intent;
import android.content.IntentFilter;
import android.os.Bundle;
import android.widget.TextView;

public class MainActivity extends Activity implements DianLiangBR.BRInteraction {

private TextView textView;

/**
* Called when the activity is first created.
*/
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
textView = (TextView) findViewById(R.id.text);
IntentFilter intentFilter = new IntentFilter();
intentFilter.addAction(Intent.ACTION_BATTERY_CHANGED);
DianLiangBR dianLiangBR = new DianLiangBR();
registerReceiver(dianLiangBR, intentFilter);
dianLiangBR.setBRInteractionListener(this);
}

@Override
public void setText(String content) {
if (content != null) {
textView.setText(content);
}
}
}

回答2:

在braodcast receiver中的onReceive方法 调用 intent.getExtras().get(“pdus”)获取 短信Object[] 数组
然后遍历数组 将每一个Object通过SmsMessage的Create方法 转换为 SmsMessage即可,每一个Object都是该方法需要的byte[]数组参数,强转一下就好了