Android - Как загрузить данные в фоновом режиме в указанное время - PullRequest
7 голосов
/ 13 июля 2010

Заранее прошу прощения за отсутствие кода для публикации, главным образом потому, что не могу понять, как мне нужно делать то, что мне нужно.

Как правило, через определенные интервалы в течение дня (например, 5 часов вечера) я хочу, чтобы мое приложение загружало некоторые данные с моего сервера и сохраняло их на устройстве. Это должно как уменьшить нагрузку на мой сервер от загрузки данных при каждом запуске приложения, так и сократить время загрузки для пользователя, чтобы при использовании приложения последние данные уже находились на его устройстве. .

Я понятия не имею, как это сделать. Я знаю, как загрузить данные просто отлично, но теперь, как загрузить в фоновом режиме, как я планирую. Это вообще возможно?

Я не прошу, чтобы кто-нибудь сделал это для меня, но кто-нибудь может указать мне правильное направление.

Ответы [ 3 ]

15 голосов
/ 13 июля 2010

Использование AlarmManager

Этот класс обеспечивает доступ к системным службам сигнализации.Это позволяет запланировать запуск приложения в определенный момент в будущем.Когда срабатывает сигнал тревоги, Intent, который был зарегистрирован для него, транслируется системой, автоматически запуская целевое приложение, если оно еще не запущено.Зарегистрированные сигналы тревоги сохраняются, пока устройство находится в спящем режиме (и при желании могут разбудить устройство, если они выключаются в течение этого времени), но будут удалены, если оно выключено и перезагружено.запустить Сервис

Сервис - это компонент приложения, представляющий либо желание приложения выполнить более продолжительную операцию, не взаимодействуя с пользователем, либо предоставить функциональность другим приложениям дляuse.

Демоверсии API включают пример службы аварийной сигнализации (в разделе «Приложение»), который:

Демонстрирует, как можно планироватьсигнал тревоги, который вызывает запуск службы.Это полезно, когда вы хотите запланировать сигналы тревоги, которые запускают длительные операции, такие как получение последних сообщений электронной почты.

В частности, см. 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>
3 голосов
/ 13 июля 2010

Запись Служба .

Использование AlarmManager .

0 голосов
/ 13 июля 2010

Может кто-нибудь, пожалуйста, укажите мне в правильном направлении.

AlarmManager , Служба , AsyncTask , BroadcastReceiver

    <receiver android:name=".receiver.BootReceiver">
        <intent-filter>
            <action android:name="android.intent.action.BOOT_COMPLETED" />
        </intent-filter>
    </receiver>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...