Решил реализовать в коде обновление информации по API запросу через определенный интервал времени. Сразу по нажатию кнопки информация приходит в соответствующие TextView, потом - тишина. т.е. информация не меняется. За обновление информации отвечает функция getResponse
- на первоначальном нажатии кнопки информация отдается на экран. Что не так с описание процесса Timer? Интервал обновления стоит 1 секунда.
Вот фрагменты кода по работе с Timer:
Обработчик нажатия кнопки Старт-Стоп:
public void didTapButton(View view) {
if(timer != null){
timer.cancel();
}
if (isEnabled) {
player.setPlayWhenReady(true);
isEnabled = false;
timer = new Timer();
mTimerTask = new MyTimerTask();
timer.schedule(mTimerTask,1000);
getResponse(); //parsing ArtistName & TrackName
}
else
{
player.setPlayWhenReady(false);
isEnabled = true;
}
}
Класс MyTimerTask:
class MyTimerTask extends TimerTask{
@Override
public void run() {
runOnUiThread(new Runnable() {
@Override
public void run() {
getResponse(); //parsing ArtistName & TrackName
}
});
}
}
Вы используете такой вариант метода shedule:
public void schedule (TimerTask task, long delay)
В нём второй аргумент отвечает за задержку перед однократным выполнением задачи.
Чтобы сделать выполнение с некоторой периодичностью, нужно использовать метод shedule:
public void schedule (TimerTask task, long delay, long period)
В нём третьим аргументом будет количество миллисекунд между успешными выполнениями задачи.
Да, действительно, немного видоизменил код, все работает. class Mytimer соответственно остается без изменений. Решение выглядит вот:
public void didTapButton(View view) {
if(timer != null){
timer.cancel();
}
if (isEnabled) {
player.setPlayWhenReady(true);
isEnabled = false;
timer = new Timer();
mTimerTask = new MyTimerTask();
timer.schedule(mTimerTask,50, 1000);
getResponse(); //parsing ArtistName & TrackName
}
else
{
player.setPlayWhenReady(false);
isEnabled = true;
}
}
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Помогите разобраться в логике действийЧто левый оперант всегда сохраняется отдельно и потом возвращается более менее осознал в некоторых...