我创建了服务UploadData
,它在 Start Sync 事件中触发。添加编码在那里安排服务运行在晚上9点daliy与1小时间隔运行完全正常。
ServiceAlarm.startServiceAlarm();
代码段:
public class ServiceAlarm {
public static AlarmManager alarmMgr;
public static PendingIntent alarmIntent;
static Context context;
public static void startServiceAlarm()
{
context = MyApplication.getApplication();
alarmMgr = (AlarmManager)context.getSystemService(Context.ALARM_SERVICE);
Intent intent = new Intent(SmartConsultant.getApplication(), UploadData.class);
alarmIntent = PendingIntent.getBroadcast(context, 0, intent, 0);
// Set the alarm to start at 9:00 a.m.
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(System.currentTimeMillis());
calendar.set(Calendar.HOUR_OF_DAY, 21);
calendar.set(Calendar.MINUTE, 00);
alarmMgr.setInexactRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), AlarmManager.INTERVAL_HOUR, alarmIntent);
Log.i("Service", "Service Started!");
}
public static void stopServiceAlarm()
{
alarmMgr.cancel(alarmIntent);
}
}
但我希望这些服务在凌晨12:00之后关闭[它必须在晚上9点到凌晨12:00之间每天运行三次]。
如何在凌晨12:00停止使用同一服务?
答案 0 :(得分:0)
我不认为有一种特定的方法来安排停止时间。我会说,根据您的具体情况,最好的办法是更改服务电话的设置。让警报管理器在9点开火。然后当你收到警报时检查时间,如果还有一个小时仍然在午夜之前发出另一个警报。