2015-07-23 2 views
0

У меня есть служба, которая запускается с использованием набора Повторяющийся сигнал тревоги через определенный интервал времени каждый день. Теперь я хочу, чтобы сервис был уволен только в офисное время. с 8 утра до 6 вечера. Для этого интервала я хочу, чтобы служба срабатывала с определенным интервалом времени, заданным пользователем. После 6 вечера он должен остановиться и перезапустить следующий день в 8 часов утра. Пробовал почти все, что доступно в Интернете. Пожалуйста, дайте мне пример кода для этого.стоп-сервис за указанный промежуток времени

+0

На мой взгляд, вы можете достичь его с помощью Scheduling будильники (https://developer.android.com/training/scheduling/alarms.html) .Но для этого вы должны запустить другую службу, которая будет обрабатывать этот сигнал. –

ответ

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

} 
Смежные вопросы