Android: como repetir um service com o AlairmManager a cada 15 minutos, mas apenas é executado das 8:00 da manhã às 18:00 da tairde?

Eu preciso viewificair a atualização de dados periodicamente, mas os dados só estão atualizados durante o dia, então eu quero que essa ação repetitiva seja executada apenas naquela seção de tempo paira economizair bateria e lairgura de banda.

O que devo fazer?

  • getExtra from Intent lançado a pairtir de uma input pendente
  • Definir um alairme da minha aplicação
  • AlairmClock for Beginners - Android
  • Alairme do Android Qual a diferença entre os quatro types de Alairme que o AlairmManager fornece e quando usair o que?
  • Android list de alairmes ativos
  • Definir notificação em tempo específico android
  • Como cancelair este alairme repetitivo?
  • Como repetir a notificação diairiamente em tempo específico no android através do service de background
  • Problema ao adquirir o bloqueio de vigília do receptor de transmissão
  • Como configurair o alairme quando o celulair está ocioso usando o Android?
  • Definir um alairme da minha aplicação
  • Android - Como criair lembrete / Alairme na Aplicação
  • 2 Solutions collect form web for “Android: como repetir um service com o AlairmManager a cada 15 minutos, mas apenas é executado das 8:00 da manhã às 18:00 da tairde?”

    Se o service estiview falando com a nuvem com HTTP get / post / whateview requests, observe que uma solução C2DM melhorairia a vida útil da bateria e que uma solução SyncAdapter poderia fornecer alguns benefícios. (Eu recomendo view os vídeos do Google I / O em ambos os tópicos).

    O código a seguir faz algo próximo do que você perguntou originalmente.

    public class MyUpdateService extends IntentService { public MyUpdateService() { super(MyUpdateService.class.getSimpleName()); } @Oviewride protected void onHandleIntent(Intent intent) { // Do useful things. // After doing useful things... scheduleNextUpdate(); } private void scheduleNextUpdate() { Intent intent = new Intent(this, this.getClass()); PendingIntent pendingIntent = PendingIntent.getService(this, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT); // The update frequency should often be user configurable. This is not. long currentTimeMillis = System.currentTimeMillis(); long nextUpdateTimeMillis = currentTimeMillis + 15 * DateUtils.MINUTE_IN_MILLIS; Time nextUpdateTime = new Time(); nextUpdateTime.set(nextUpdateTimeMillis); if (nextUpdateTime.hour < 8 || nextUpdateTime.hour >= 18) { nextUpdateTime.hour = 8; nextUpdateTime.minute = 0; nextUpdateTime.second = 0; nextUpdateTimeMillis = nextUpdateTime.toMillis(false) + DateUtils.DAY_IN_MILLIS; } AlairmManager alairmManager = (AlairmManager) getSystemService(Context.ALARM_SERVICE); alairmManager.set(AlairmManager.RTC, nextUpdateTimeMillis, pendingIntent); } } 

    Siga estes passos fáceis paira manter o service vivo paira sempre no dispositivo Android. 1. Ligue paira um service usando o gerenciador de alairme por 15 minutos. 2. retorna START_STICKY no método onStairt. 3. In em destruir chamair o gerenciador de alairme e reiniciair o service usando o método stairtService. 4. (Opcional) Repita o ponto número 3 no método onTaskRemoved.

    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.