我试图在后台设置每5分钟运行一次服务。但它表现得很奇怪:
在Main activity的onCreate中,我将它安排为每5分钟运行一次:
public void scheduleAlarm(Context context) {
Intent intent = new Intent(context, AdSyncStartReceiver.class);
final PendingIntent pIntent = PendingIntent.getBroadcast(context, AdSyncStartReceiver.REQUEST_CODE, intent, PendingIntent.FLAG_UPDATE_CURRENT);
long firstMillis = System.currentTimeMillis(); // alarm is set right away
AlarmManager alarm = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
alarm.setInexactRepeating(AlarmManager.RTC_WAKEUP,
firstMillis,
5 * 60 * 1000, // 5 min
pIntent);
}
public class AdSyncStartReceiver extends BroadcastReceiver {
// Triggered by the Alarm periodically (starts the service to run task)
@Override
public void onReceive(Context context, Intent intent) {
Intent i = new Intent(context, AdSyncService.class);
context.startService(i);
}
}
public class AdSyncService extends IntentService {
public AdSyncService() {
super("AdSyncService");
}
@Override
protected void onHandleIntent(Intent intent) {
// Do the task here
Log.i("AdSyncService", "AdSyncService Service running");
}
@Override
public IBinder onBind(Intent intent) {
return null;
}
}
<receiver
android:name=".AdManager.AdSyncStartReceiver"
android:process=":remote" >
</receiver>
<receiver android:name=".AdManager.BootReceiver">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
</intent-filter>
</receiver>
<service
android:name=".AdManager.AdSyncService"
android:exported="false" />
10-28 02:46:51.405 6820-7043/pack I/AdSyncService﹕ AdSyncService Service running
10-28 02:47:04.198 6820-7052/pack I/AdSyncService﹕ AdSyncService Service running
10-28 02:48:04.199 6820-7099/pack I/AdSyncService﹕ AdSyncService Service running
10-28 02:49:04.196 6820-7182/pack I/AdSyncService﹕ AdSyncService Service running
我严格遵循了本教程:
https://guides.codepath.com/android/starting-background-services#using-with-alarmManager-for-periodial-tasks
试试这个,它对我有效:
alarm.setInexactRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP, SystemClock.elapsedRealtime(), 60 * 1000 * 5, pendingIntent);
大家好,耶稣受难节, 我知道这似乎是一个重复的问题,但事实并非如此,我将向您解释原因: 有几种方法可以在计划的时间执行任务,如TimerTask或ScheduleExecutorService,但它们都不适合我要做的事情,因为这些方法都是这样工作的: -- 但我不希望我的代码在计划时间后一次又一次地运行,我希望我的代码总是在每个计划时间执行,即使是第一次。 还有一个问题:如果android停止后台
问题内容: 我正在使用Python和PyGTK。我对运行某个功能感兴趣,该功能每隔几分钟从串行端口获取数据并保存一次。 当前,我正在时间库中使用sleep()函数。为了能够进行处理,我将系统设置如下: 这种设置使我从串口读取数据的间隔为5分钟。我的问题是我希望能够让我的readserial()函数每隔5分钟暂停一次,并且能够一直执行操作,而不是使用time.sleep()函数。 关于如何解决这个问
我希望每5分钟运行一个脚本,比如说从13:02开始,这样我可以每5分钟运行另一个脚本,但从13:04开始,第二个脚本在第一个作业开始两分钟后运行。我怎样才能做到这一点?
如何每5分钟左右运行一个PHP文件?我尝试使用cron,但它似乎不起作用。假设我想让我的网站运行一个播放声音的php文件。如何使php文件每5分钟运行一次,使声音每5分钟播放一次。我知道JavaScript可以做到这一点,因此函数可以按设定的间隔运行,但我希望文件也这样做。 这样做的原因是我正在创建一个网站,我希望用户得到实时通知。为了做到这一点,我需要运行php文件,以便它可以检测用户通知的更改
问题内容: 我想尝试通过以下方式使用@Schedule批注: 根据日志,CronService运行良好,但是计划的任务“ runsEveryMinute”不起作用。 使用EJB计划任务如何工作? 问题答案: 按照该Javadoc中的注释,默认值是: 除小时,分钟和秒外的所有字段;和 默认情况下为小时,分钟和秒。 通过将小时值保留为默认值,它要求计时器在午夜之后每分钟运行一小时(即00:00、00:
问题内容: 我正在使用node-cron运行计划的作业。我希望作业每隔45分钟运行一次,但操作却很奇怪 这是我正在使用的模式 我的脚本开始于 这是工作执行的前两次 这绝对不是我期望或想要的。我想要的是每45分钟运行一次Jobs。有人可以帮我这个图案吗?谢谢 :) 问题答案: 您可能正在寻找 范围在这里。 秒:0-59 分钟:0-59 时间:0-23 每月的日期:1-31 月:0-11 星期几:0-