#java #android
Закрыт. Этот вопрос необходимо уточнить или дополнить подробностями. Ответы на него в данный момент не принимаются. Хотите улучшить этот вопрос? Добавьте больше подробностей и уточните проблему, отредактировав это сообщение. Закрыт 3 года назад. Как отправлять запрос с периодичностью 10 секунд на сервер? Я использую библиотеку okhttp, скиньте пример, пожалуйста.
Ответы
Ответ 1
Timer timer = new Timer(); TimerTask timerTask = new TimerTask() { @Override public void run() { //Тут идёт запрос в сеть } } timer.schedule(timerTask, 0, 10000);Ответ 2
RxJava, с лямбдами Observable.just(true).repeatWhen(t->t.delay(10,TimeUnit.SECONDS)).subscribe(b->{makeNetworkRequest();}); Без лямбд Observable.just(true).repeatWhen(new Func1, Observable>() { @Override public Observable call(Observable t) { return t.delay(10, TimeUnit.SECONDS); } }).subscribe(new Action1 () { @Override public void call(Boolean b) { makeNetworkRequest(); } }); Ответ 3
В Android предоставлено множество способов создать таймер. Запрос на сервер через библиотеку okhttp можно сделать синхронным в отдельном потоке. Мой пример с созданием рекурсии, без использования Timer и TimerTask. static boolean stopSyncDownloadData = false; /** * Call method in thread * @param stopSyncDownloadData - boolean */ private void syncDownloadData() { if (stopSyncDownloadData) return; Request request = new Request.Builder().url(url).build(); Response response = client.newCall(request).execute(); // parse response // update UI // delay Thread.sleep(10000); // sleep syncDownloadingData(); } Ниже пример для создания простейшего потока: new Thread(new Runnable() { public void run() { syncDownloadData(); } }).start();
Комментариев нет:
Отправить комментарий