【问题标题】:How do I pass a variable to a broadcast receiver?如何将变量传递给广播接收器?
【发布时间】:2013-01-16 09:48:51
【问题描述】:

从主要活动中,我调用带有警报管理器的广播接收器来启动重复功能。我还创建了共享时段的偏好。如何将周期时间整数传递给另一个类广播接收器?

  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    SharedPreferences preferences = getSharedPreferences("dataiowebusb" ,  VATE);


      String strUpdatetime = preferences.getString("Period","3");

      text5.setText(strUpdatetime);

      Tperiod =Integer.parseInt(strUpdatetime);

        if(Tperiod>1200){
            Tperiod=1200;//20min
        }

        sendBroadcast(new Intent(this,MyScheduleReceiver.class));//Call ala   

}

    public class MyScheduleReceiver extends BroadcastReceiver {

public static int period=20;

private static final long REPEAT_TIME = 1000 * period;
public void onReceive(Context context, Intent intent) {

AlarmManager service = (AlarmManager) context
    .getSystemService(Context.ALARM_SERVICE);
Intent i = new Intent(context, MyStartServiceReceiver.class);

如果我在广播接收器类中使用共享首选项,则会出现错误 MODE_PRIVATE..

【问题讨论】:

  • How i pass integer to another class broadcast receiver? 哪个整数?
  • Tperiod...来自活动的整数

标签: android broadcastreceiver alarmmanager


【解决方案1】:

在创建 Intent 时将一些数据放入 bundle (Extras)

new Intent(this, SomeClass.class).putExtra("someKey", someValue);

在broadcastReceiver上时,从intent onReceive方法中读取数据

intent.getExtras().getInt("someKey")

【讨论】:

    【解决方案2】:

    您可以使用extras 属性及其访问方法putExtra 传递Intent 对象上的数据,并使用getIntExtra 检索数据。

    因此,您的调用代码应如下所示:

    Intent intent=new Intent(this,MyScheduleReceiver.class)
    intent.putExtra("PERIOD", Tperiod);
    sendBroadcast(intent);//Call ala   
    

    要收回它,请在您的接收方onReceive 方法:

    int tPeriod= intent.getIntExtra("PERIOD", 1200); //taking 1200 as a default value, used if no "PERIOD" Bondle is found at the Intent extras.
    

    【讨论】:

      【解决方案3】:

      把你的价值观放在额外的意图中。

      Intent i = new Intent(context, MyStartServiceReceiver.class); i.putextra("key",value);

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-01-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多