如何在特定时间触发android中的后台服务?
我知道如何在特定时间触发android的后台服务。我已经使用了如何在特定时间触发android中的后台服务?,android,background-service,Android,Background Service,我知道如何在特定时间触发android的后台服务。我已经使用了AlarmManager来实现这一点,但我希望每天都在这个时候启动该服务 假设我想在中午12点开始,但服务应该在那之后继续。我还使用了stopItlf()方法,但这不起作用 这是我的密码: void alram(Context ctx){ Calendar cal = Calendar.getInstance(); cal.setTimeInMillis(System.currentTimeMillis());
AlarmManager
来实现这一点,但我希望每天都在这个时候启动该服务
假设我想在中午12点开始,但服务应该在那之后继续。我还使用了stopItlf()
方法,但这不起作用
这是我的密码:
void alram(Context ctx){
Calendar cal = Calendar.getInstance();
cal.setTimeInMillis(System.currentTimeMillis());
cal.set(Calendar.HOUR_OF_DAY, 12);
cal.set(Calendar.MINUTE, 0);
cal.set(Calendar.SECOND, 0);
cal.set(Calendar.AM_PM,Calendar.AM);
Intent serviceIntent = new Intent(ctx, ServiceClass.class);
PendingIntent servicePendingIntent =
PendingIntent.getService(ctx,Service_Apps.SERVICE_ID,serviceIntent,0);
AlarmManager alarm = (AlarmManager) ctx
.getSystemService(Context.ALARM_SERVICE);
alarm.set(AlarmManager.RTC_WAKEUP,cal.getTimeInMillis(),servicePendingIntent);
alarm.setRepeating(
AlarmManager.RTC_WAKEUP,
cal.getTimeInMillis(),
AlarmManager.INTERVAL_DAY,
servicePendingIntent
);
}
您好,请使用此代码,它将有助于满足您的愿望
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.HOUR_OF_DAY, 12);
calendar.set(Calendar.MINUTE, 0);
calendar.set(Calendar.SECOND, 0);
PendingIntent pi = PendingIntent.getService(this, 0,
new Intent(this, Service_Apps.class),PendingIntent.FLAG_UPDATE_CURRENT);
AlarmManager am = (AlarmManager)getSystemService(Context.ALARM_SERVICE);
am.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(),
AlarmManager.INTERVAL_DAY, pi);
可能重复have look@Channa no It's not duplicate,我们可以在特定时间启动服务,但我每天都在寻找。您可以做的是在第二天执行“旧”服务时计划新的。设置精确(…)。因此,你的意图将完成工作+时间表。