[英]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.