2010-07-13 8 views
7

Es tut mir leid im Voraus für keinen Code zum Posten, vor allem weil ich nicht für das Leben von mir herausfinden kann, wie ich was ich tun muss tun müssen.Android - So laden Sie Daten im Hintergrund zu bestimmten Zeiten

Grundsätzlich, in bestimmten Abständen während des Tages (z. B. 5 P.M), möchte ich meine App einige Daten von meinem Server herunterladen und auf dem Gerät speichern. Dies reduziert sowohl die Last auf meinem Server, dass bei jedem Start der App Daten heruntergeladen werden, als auch die Ladezeiten für den Benutzer zu reduzieren, so dass die neuesten Daten bereits auf ihrem Gerät gespeichert sind, wenn sie die App verwenden .

Ich habe absolut keine Ahnung, wie das geht. Ich weiß, wie man Daten gut herunterladen kann, aber jetzt, wie man im Hintergrund wie ich plane, herunterzuladen. Ist es überhaupt möglich?

Ich fordere niemanden auf, es für mich zu tun, aber könnte jemand bitte mich in die richtige Richtung weisen.

+0

ich eine ähnliche Frage Klicken Sie auf [Eingabe Link Beschreibung hier] [1] [1] beantwortet haben: http : //stackoverflow.com/a/30029284/4716646 – sunnytheshine

Antwort

15

Verwenden Sie die AlarmManager

Diese Klasse bietet Zugriff auf die Systemalarmdienste. Damit können Sie planen, dass Ihre Anwendung irgendwann in der Zukunft ausgeführt wird. Wenn ein Alarm ausgelöst wird, wird die Intent, die für ihn registriert wurde, vom System gesendet und startet die Zielanwendung automatisch, wenn sie nicht bereits ausgeführt wird. Registrierte Alarme bleiben erhalten, während sich das Gerät im Ruhezustand befindet (und können das Gerät gegebenenfalls aufwecken, wenn sie während dieser Zeit ausgeschaltet werden), werden jedoch gelöscht, wenn es ausgeschaltet und neu gestartet wird.

sie verwendet ein Service

Ein Dienst ist eine Anwendungskomponente, die entweder eine Anwendung Wunsch zu beginnen, eine länger andauernde Operation durchzuführen, während nicht mit dem Benutzer oder liefern Funktionen für andere Anwendungen in Wechselwirkung zu benutzen.

Die API Demos enthält ein Weckanruf Beispiel (in dem "App" Abschnitt), die:

Demonstriert, wie Sie können einen Alarm planen, ein Dienst gestartet werden verursacht. Dies ist nützlich, wenn Sie Alarme planen möchten, die lang andauernde Vorgänge initiieren, z. B. das Abrufen aktueller E-Mails.

Insbesondere sieht AlarmService.java ein Beispiel für Alarmmanager mit Ihrem Dienst planen später geweckt werden, und sehen AlarmService_Service.java für ein Beispiel, wie man diesen Alarm zu reagieren. Die API Demo der AndroidManifest.xml enthält die damit verbundenen und Aktivitäts Definitionen:

<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, ich habe meine Antwort aktualisiert, um Sie auf das Rig zu verweisen ht Richtung. –

+0

Vielen Dank für Ihre Hilfe. Das war perfekt. –

0

könnte mir bitte jemand in die richtige richtung zeigen.

AlarmManager, Service, AsyncTask, BroadcastReceiver

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

Ist das eine Antwort oder eine Frage? Es gibt keine Erklärung, keinen Link usw. Entschuldigung -1 – Janusz

Verwandte Themen