0

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

  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..

4

3 回答 3

1

您可以Intent使用extras属性及其访问方法putExtra传递对象上的数据,并使用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.
于 2013-01-16T09:56:52.237 回答
1

在创建 Intent 时将一些数据放入包中(附加)

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

在广播接收器上时,从意图 onReceive 方法读取数据

intent.getExtras().getInt("someKey")
于 2013-01-16T09:58:57.600 回答
0

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

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

于 2013-01-16T09:56:17.643 回答