我有一个服务,在每天特定的时间间隔后使用设置的重复警报触发。现在我希望仅在办公时间内解雇该服务。即上午8点至下午6点对于此间隔,我希望服务以用户设置的特定时间间隔触发。下午6点之后应该停止并在第二天早上8点重新开始。尝试了互联网上几乎所有可用的东西。请给我一些示例代码。
答案 0 :(得分:0)
您可以每2小时点火一次。 在接收器中,检查时间。如果时间在用户输入的时间范围内(userEnteredTimeRange),则运行该服务。如果没有,请不要执行任何操作。
我不知道您需要什么样的服务。如果它只是一个快速的后台工作,你可以激活一个IntentService。
Intent alarmIntent = new Intent(ctx, MyAlarmReceiver.class);
pendingIntent = PendingIntent.getBroadcast(ctx, 0, alarmIntent, 0);
manager = (AlarmManager)ctx.getSystemService(Context.ALARM_SERVICE);
manager.setRepeating(AlarmManager.RTC_WAKEUP, date.getTimeInMillis(), SCHEDULEDING_TIME_IN_MS, pendingIntent);
MyAlarmReceiver中的
@Override
public void onReceive(Context ctx, Intent arg1) {
Log.e(TAG,"Alarm received");
acquire(ctx);
try {
if(time in userEnteredTimeRange){
ctx.startService(new Intent(ctx, YourService.class));
}
}catch(Exception e){
Log.e(TAG,"error in starting service");
}
}