报警管理器以不同的时间间隔触发

时间:2014-02-27 02:47:42

标签: android alarmmanager android-alarms repeatingalarm

单个警报管理器可以在2个不同的时间间隔触发,例如第一个间隔应该是1分钟,第二个间隔应该是2分钟

我正在尝试使用以下代码,但它无法正常工作:(

{
    AlarmManager am=(AlarmManager)context.getSystemService(Context.ALARM_SERVICE);

    Intent intent = new Intent(context, AlarmManagerBroadcastReceiver.class);
    intent.putExtra(ONE_TIME, Boolean.FALSE);
    PendingIntent pi = PendingIntent.getBroadcast(context, 0, intent, 0);
    am.setRepeating(AlarmManager.RTC_WAKEUP, System.currentTimeMillis(), 1000 * 60 *x, pi); 
}

//Initialized x=1;
//In onReceive what i did was...
public void onReceive(Context context, Intent intent) {
   if(x===1) 
       x=2;
   else
       x=1; 
}

这是错的吗?

1 个答案:

答案 0 :(得分:0)

来自Google开发者文档

BroadcastReceiver对象仅在调用toonReceive(Context,Intent)期间有效。一旦您的代码从此函数返回,系统会认为该对象已完成且不再有效。

因此,您的x将始终为1.使x变量保持静态。