2010-07-13 14 views
7

對不起,我沒有任何代碼張貼,主要是因爲我不能爲我的生活弄清楚我需要做什麼我怎麼做需要做。Android - 如何在指定時間在後臺下載數據

基本上,在一天中的指定時間間隔(例如5 P.M),我希望我的應用程序從我的服務器下載一些數據並將其存儲在設備上。這樣可以減少我的服務器上每次運行應用程序時下載數據的負載,並減少用戶的加載時間,以便在他們使用應用程序時,最新的數據已經在他們的設備上。

我絕對沒有線索如何做到這一點。我知道如何下載數據就好,但現在如何在後臺下載我的計劃。它甚至有可能嗎?

我不是要求任何人爲我做這件事,但有人可以請我指出正確的方向。

+0

我已經回答了類似的問題 點擊[此處輸入鏈接的描述] [1] [1]:HTTP ://kackackflowflow.com/a/30029284/4716646 – sunnytheshine 2015-05-04 11:46:31

回答

15

使用AlarmManager

這個類提供訪問系統報警服務。這些允許您安排您的應用程序在未來的某個時間點運行。當警報關閉時,已註冊的Intent由系統廣播,如果目標應用程序尚未運行,則自動啓動目標應用程序。註冊的警報在設備處於睡眠狀態時保留(如果在此期間關閉設備,可以選擇將設備喚醒),但如果設備關閉並重新啓動,則會被清除。

用它來啓動一個Service

A服務是表示任一應用程序的慾望以執行更長的運行的操作,同時不與用戶交互,或用於其它應用提供功能性的應用程序組件使用。

API Demos包括報警服務示例(「應用程序」一節),其中:

演示如何安排導致要啓動的服務的警報。當您想要計劃啓動長時間運行操作的警報(例如檢索最近的電子郵件)時,這非常有用。

特別是看到AlarmService.java使用AlarmManager安排您的服務稍後喚醒,並看到AlarmService_Service.java有關如何向報警響應一個例子的一個例子。該API演示的AndroidManifest.xml包含相關的服務和活動定義:

<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

@凱爾,我已經更新了我的答案,指出你在鑽井平臺上方向。 – 2010-07-13 08:13:04

+0

非常感謝您的幫助。這很完美。 – 2010-07-13 17:11:42

0

有人請指點我在正確的方向。

AlarmManagerServiceAsyncTaskBroadcastReceiver

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

這是一個答案或問題?沒有解釋沒有鏈接等對不起-1 – Janusz 2010-07-13 07:19:49

相關問題