Я посмотрел код здесь , а также код здесь , но я все еще не могу заставить мой код работать правильно. Со второй ссылкой я могу получить «таймер», который считает на странице, но с первой мой пользовательский интерфейс блокируется. Я пытаюсь создать отдельный поток, который непрерывно переворачивает текст в переключатель текста каждые 3 секунды, пока приложение открыто. Мне нужно, чтобы переключиться между двумя значениями, и попытался что-то вроде следующего:
private Runnable mUpdateTimeTask = new Runnable() {
public void run() {
while(true){
try {
mHandler.post(new Runnable(){
@Override
public void run() {
try {
mSwitcher.setText("ON");
Thread.sleep(1000);
mSwitcher.setText("OFF");
Thread.sleep(1000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
);
}catch (Exception e) {
//tv1.setText(e.toString());
}
}
}
};
Где он будет переключаться «вкл» или «выкл» каждые 2 секунды. Мне также нужно иметь возможность обновлять содержимое текстового переключателя из основного интерфейса, но я не дошел до того, что могу попробовать и протестировать это. В дополнение к вышесказанному я также попытался использовать Async Task:
new AsyncTask<Void, Double, Void>() {
@Override
protected Void doInBackground(Void... params) {
while (true) {
mSwitcher.setText("ON");
SystemClock.sleep(2000);
mSwitcher.setText("OFF");
SystemClock.sleep(2000);
}
}
}.execute();
но это тоже не сработало.