停止服务指定的时间间隔

时间:2015-07-23 18:24:36

标签: android

我有一个服务,在每天特定的时间间隔后使用设置的重复警报触发。现在我希望仅在办公时间内解雇该服务。即上午8点至下午6点对于此间隔,我希望服务以用户设置的特定时间间隔触发。下午6点之后应该停止并在第二天早上8点重新开始。尝试了互联网上几乎所有可用的东西。请给我一些示例代码。

1 个答案:

答案 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");
    }

}