Я уже сделал немного своей первой игры для Android, и он работает хорошо. Теперь мне нужно сделать обновление экрана как каждую секунду, чтобы мой счетчик в игре обновился.Только исходный поток, создавший иерархию представлений, может коснуться его представлений. Нет runnable
Выполнение таймера дает эту проблему:
Только оригинальный поток, который создал иерархию вида может коснуться его точки зрения.
Я искал stackoverflow и решил создать runnable. Я не знаю, как это работает. Я создаю один, а затем программа прерывается, потому что контекст не работает в runnable
error: constructor DrawGame in class DrawGame cannot be applied to given types;
required: Context
found: no arguments
reason: actual and formal argument lists differ in length
Что я могу сделать? Зачем мне нужен runnable. Моя игра - простая игра в шахматы.
Пытался сделать это следующим образом:
public class DrawGame extends View implements OnTouchListener {
Timer turnTimer = new Timer("timeLeft", false);
TimerTask countDown = new TimerTask() {
@Override
public void run() {
invalidate();
}
};
public DrawGame(Context context){
super(context);
Turns.turnTimeCounter();
Turns.yourTurn();
turnTimer.scheduleAtFixedRate(countDown, 1000, 1000);
}
@Override
public void onDraw(Canvas canvas){
//lot of code
}
Можете ли вы показать пример кода, который выдает исключение? –
[android-basics-running-code-in-the-ui-thread] (http://stackoverflow.com/questions/12850143/android-basics-running-code-in-the-ui-thread) –
'program ломается, потому что контекст не работает в runnable и т. д., вы думаете, что это все, кому нужно знать, что вы знаете, какая проблема? – Simon