2010-07-13 7 views
7

Je suis désolé d'avance pour ne pas avoir de code pour poster, principalement parce que je ne peux pas pour la vie de moi comprendre comment je dois faire ce que je besoin de faire.Android - Comment télécharger des données en arrière-plan à des moments précis

Fondamentalement, à des intervalles spécifiés pendant la journée (par exemple 5 heures), je veux que mon application télécharge des données de mon serveur et les stocke sur l'appareil. Cela permet à la fois de réduire la charge sur mon serveur de télécharger des données chaque fois que l'application est exécutée et de réduire les temps de chargement de l'utilisateur, de sorte que les données les plus récentes sont déjà installées sur leur appareil. .

Je n'ai absolument aucune idée de comment faire cela. Je sais comment télécharger des données très bien, mais maintenant comment télécharger en arrière-plan comme je le planifie. Est-ce même possible?

Je ne demande à personne de le faire pour moi, mais quelqu'un pourrait me diriger dans la bonne direction.

+0

J'ai répondu à une question similaire Cliquez sur [enter description du lien ici] [1] [1]: http : //stackoverflow.com/a/30029284/4716646 – sunnytheshine

Répondre

15

Utilisez le AlarmManager

Cette classe permet d'accéder aux services d'alarme du système. Ceux-ci vous permettent de programmer votre application pour qu'elle soit exécutée à un moment donné dans le futur. Lorsqu'une alarme se déclenche, le Intent qui a été enregistré pour elle est diffusé par le système, démarrant automatiquement l'application cible si elle n'est pas déjà en cours d'exécution. Les alarmes enregistrées sont conservées pendant que l'appareil est en veille (et peuvent éventuellement réveiller l'appareil si elles s'éteignent pendant ce temps), mais seront effacées si elles sont désactivées et redémarrées.

utiliser pour démarrer une Service

Un service est un composant d'application qui représente soit le désir d'une application pour effectuer une opération plus longue course sans interaction avec l'utilisateur ou de fournir des fonctionnalités d'autres applications à utilisation.

Le API Demos comprend un exemple de service d'alarme (dans la section "App"), qui:

montre comment vous pouvez programmer une alarme qui provoque un service à démarrer. Ceci est utile lorsque vous souhaitez planifier des alarmes qui lancent des opérations de longue durée, telles que la récupération des e-mails récents.

voir, en particulier, AlarmService.java pour un exemple d'utilisation AlarmManager pour planifier votre service pour être réveillé plus tard, et de voir AlarmService_Service.java un exemple de la façon de répondre à cette alarme. L'API AndroidManifest.xml de démonstration contient les services connexes et les définitions activité:

<service android:name=".app.AlarmService_Service" android:process=":remote" /> 

    <activity android:name=".app.AlarmService" android:label="@string/activity_alarm_service"> 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 
      <category android:name="android.intent.category.SAMPLE_CODE" /> 
     </intent-filter> 
    </activity> 
+0

@Kyle, j'ai mis à jour ma réponse pour vous pointer dans la plate-forme direction ht. –

+0

Merci d'être extrêmement utile. C'était parfait. –

0

quelqu'un pourrait me diriger dans la bonne direction.

AlarmManager, Service, AsyncTask, BroadcastReceiver

<receiver android:name=".receiver.BootReceiver"> 
     <intent-filter> 
      <action android:name="android.intent.action.BOOT_COMPLETED" /> 
     </intent-filter> 
    </receiver> 
+1

Est-ce une réponse ou une question? Il n'y a pas d'explication, pas de lien etc désolé -1 – Janusz