0

最初の間隔は 1 分、2 番目の間隔は 2 分など、2 つの異なる時間間隔で 1 つのアラーム マネージャーをトリガーできますか

次のコードを試していましたが、期待どおりに機能しません:(

{
    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; 
}

これは間違っていますか?

4

1 に答える 1

0

Google 開発者ドキュメントから

BroadcastReceiver オブジェクトは、呼び出し toonReceive(Context, Intent) の間のみ有効です。コードがこの関数から戻ると、システムはオブジェクトが終了し、アクティブではなくなったと見なします。

したがって、x は常に 1 になります。x 変数を静的にします。

于 2014-02-27T03:18:09.433 に答える