将参数从活动传递到BroadcastReceiver

时间:2011-08-07 21:38:45

标签: android parameters android-activity parameter-passing broadcastreceiver

嘿我一直试图将我的活动中的一个字符串数组传递给广播接收器,但它总是在广播接收时给我null,我已经用2-3种方式尝试过了。

// Code in Receiver
String stringText= intent.getExtras().getString("string_text");

//Code in Activity
   Intent i = new Intent("android.intent.action.PHONE_STATE");
i.putExtra("string_text", "abc");
 sendBroadcast(i);

但是在接收端,stringText总是为空。我用另一种方式尝试过但没有运气

String text= (String)intent.getSerializableExtra("string_text");

但到目前为止,没有人可以帮助我解决这个问题吗?

2 个答案:

答案 0 :(得分:1)

public class GlobalVariable extends Application {

  private String[] var;

  public String[] getVar(){
    return var;
  }
  public void setVar(String[] var){
    this.var= var;
  }
}

在我的活动中称呼它

GlobalVariable appState = ((GlobalVariable) this.activity.getApplication());
appState.getVar() 

上面的代码行检索类似的设置方式

答案 1 :(得分:0)

首先,您为什么要尝试从活动到广播接收器进行通信?这是非常不寻常的行为,它表明代码组织存在问题。

其次,你为什么要使用android.intent.action.PHONE_STATE?我相信你不会为谷歌工作。因此,您不应该使用系统定义的操作字符串。事实上,很可能这是你困难的根源 - 我怀疑你可以发送那个广播。