Я использую Android Studio и эмулятор Android 4.1.2. Мой кодandroid handler - нормально, таймер - к сожалению, остановлен. почему разница?
Timer timer = new Timer();
timer.schedule(new TimerTask() {
@Override
public void run() {
myRun();
}
},10000,10000);
результат «к сожалению, приложение остановилось», однако я узнал код
Handler handler = new Handler();
handler.postDelayed(new Runnable() {
public void run() {
myRun();
}
}, 2000);
работает нормально, и показывает, как я ожидал. Какое внутреннее различие между этими двумя?
P.S.
public void myRun() {
myView.removeAllViews();
drawView = new DrawView(myContext, myView);
myView.addView(drawView);
}
Я пытаюсь постоянно обновлять пользовательский вид до тех пор, пока пользователь не отменяет его. Просто цикл
while (myRun) {
приводит эмулятор становится невосприимчива к выравниванию кнопки назад, работают это обновление во втором потоке
new Thread(new Runnable() {
@Override
public void run() {
while (myRun) {
myView.post(new Runnable() {
public void run() {
myView.removeAllViews();
drawView = new DrawView(myContext, myView);
myView.addView(drawView);
}
});
}
}
}).start();
результатов в том же самом (что интересно мне, если я бег отладки с точкой останова на время в секунде нить, обновления экрана, как я ожидаю, много раз, однако запуск отладки не выводит экран).
Сообщите, как выглядит журнал ошибок. – starkshang