Периодическая загрузка данных (опрос) с сервера в Android - PullRequest
6 голосов
/ 31 августа 2010

Я работаю над приложением, где я получаю данные с сервера с помощью rest call и добавляю их в представление.Я правильно получаю все исходные данные.Для этого я использую AsyncTask.

Теперь я хочу периодически (скажем, 2 минуты) получать новые данные с сервера и добавлять их для просмотра. Периодическая загрузка данных (опрос) с сервера в Android.

Ответы [ 3 ]

3 голосов
/ 31 августа 2010

Вы можете проверить класс AlarmManager, чтобы сделать это.

Intent intent = new Intent(this, MyAlarmManager.class);

long scTime = 60*2000;//2mins

PendingIntent pendingIntent = PendingIntent.getBroadcast(this, 0, intent, 0);

AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);

alarmManager.set(AlarmManager.RTC_WAKEUP, System.currentTimeMillis() + scTime, pendingIntent);

вот менеджер аварийных сигналов -

public class MyAlarmManager extends BroadcastReceiver {

    Context _context;
        @Override
        public void onReceive(Context context, Intent intent) {
            _context= context;
            //connect to server..

        }
}

когда срабатывает AlarmManager, снова подключайтесь к серверу и заполняйте только что полученные данные.

http://developer.android.com/reference/android/app/AlarmManager.html

1 голос
/ 24 июля 2013

следуйте упомянутому учебнику здесь .Это именно то, что вы хотите сделать.Кроме того, поскольку серверные звонки выполняются каждые несколько минут, это потребляет батарею.Таким образом, вы можете попытаться выполнить серверные вызовы, только когда данные сервера изменяются посредством push-уведомлений

1 голос
/ 31 августа 2010

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

Или запустить службу при запуске приложения и привязать вашу активность к службе при запуске.Затем используйте AIDL или что-то подобное для связи со службой.
(Например, каждый раз, когда служба извлекает данные, она может отключить функцию обратного вызова в вашей деятельности)

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