繁体   English   中英

AlarmManager android 无法调度周期小于 1000 毫秒

[英]AlarmManager android can't scheduling with cycle is smaller 1000 miliseconds

我正在通过 AlarmManager 开发一个周期为 500 毫秒的调度,但是当运行周期为 1000 毫秒时

这是我的代码:

public class SchedulerAlarm extends BroadcastReceiver {
    public void onReceive(Context context, Intent intent) {
        Log.d(TAG, "onReceive enter");
        AlarmManager am =( AlarmManager)context.getSystemService(Context.ALARM_SERVICE);
        Intent i = new Intent(context, Layer2_SchedulerAlarm.class);
        PendingIntent pi = PendingIntent.getBroadcast(context, 0, i, 0);
       //am.setRepeating(AlarmManager.RTC_WAKEUP, System.currentTimeMillis(), 1 * 2 * 1, pi); // Millisec * Second * Minute
        am.set(AlarmManager.ELAPSED_REALTIME_WAKEUP, SystemClock.currentThreadTimeMillis() + 500, pi);
    }

    public void setAlarm(Context context)
    {
          Log.d(TAG, "setAlarm enter");
          AlarmManager am =(AlarmManager)context.getSystemService(Context.ALARM_SERVICE);
          Intent i = new Intent(context, Layer2_SchedulerAlarm.class);
          PendingIntent pi = PendingIntent.getBroadcast(context, 0, i, 0);
          am.set(AlarmManager.ELAPSED_REALTIME_WAKEUP, SystemClock.elapsedRealtime() + 500, pi);
    }

}


public class Myervice extends Service {
     SchedulerAlarm SchedulerAlarm scheduler = new Layer2_SchedulerAlarm();

     @Override
     public int onStartCommand(Intent intent, int flags, int startId) {
           LibJNIWrapper.selectGW(0);
          Log.d(TAG, "onStartCommand enter");
          scheduler.setAlarm(this);
          return START_NOT_STICKY;
      }
}

Manifest:
   <receiver android:name=".Layer2_SchedulerAlarm"></receiver>

这是运行时的结果,循环输入 onReceive 大约 1000 毫秒(不要我的期望是 500 毫秒)

11-29 13:26:56.921 4938-4938/com.joydus.aimon D/TEST: onReceive enter
11-29 13:26:57.954 4938-4938/com.joydus.aimon D/TEST: onReceive enter
11-29 13:26:58.994 4938-4938/com.joydus.aimon D/TEST: onReceive enter
11-29 13:27:00.049 4938-4938/com.joydus.aimon D/TEST: onReceive enter
11-29 13:27:01.080 4938-4938/com.joydus.aimon D/TEST: onReceive enter
11-29 13:27:02.099 4938-4938/com.joydus.aimon D/TEST: onReceive enter

请提出任何建议。

我不知道,你的用例。 但是,如果您的应用程序在后台执行某些操作,并且仅当应用程序打开且未关闭时。 使用定时器

根据我正在使用的库的要求,我使用它 20 毫秒。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM