Есть приложение, в котором получаю данные с EditText
и GPS и отправляю в БД MySQL удаленно через HttpURLConnection
. Это надо делать через каждые 15 секунд после нажатия на кнопку. Всё готово и работает, но приложение зависает, когда делаю бесконечный цикл. Что делать?
Sender s = new Sender(MainActivity.this, urlAddress, lat, nameTxt, posTxt,
teamTxt, idTxt, numTxt);
s.execute();
Это можно делать вот так, например:
private Handler handler = new Handler();
private boolean weNeedToContinue = true;
private void doSomethingPeriodically() {
// TODO здесь делай свою работу
if (weNeedToContinue) {
handler.postDelayed(new Runnable() {
@Override
public void run() {
doSomethingPeriodically();
}
}, 15000);
}
}
Обратите внимание, что работа будет выполняться в главном (UI) потоке. Выполнять взаимодействие с сервером из главного потока опасно.
Для таких задач в Android есть два класса, это JobScheduler
(доступен только с 21 api) и GcmNetworkManager
. Я думаю вам лучше на последний вариант посмотреть. Вот пример github
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Есть класс SingleWord с полями String word, String alphabet, int iconЕсть коллекция ArrayList<SingleWord>, которая хранит объекты типа SingleWord