Неудачный () сбой
Я посылаю данные в класс, который я хотел изменить макет. Я отправляю данные следующим образом:
в то время как (подключен){
//receive data through socket
in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
while ( (line = in.readLine()) != null){
String [] aarray = line.split("[^\\d]+");
if (aarray != null){
for(int i = 0; i < aarray.length; i++){
number = Integer.parseInt(aarray[i]);
}
}
Log.d(TAG, "Line " + String.valueOf(line));
myCompassView.updateDirection(number);
updateDirection вызывает следующую функцию:
public void updateDirection(float dir){
direction = dir;
Log.d(main.TAG, "mudou direction " + String.valueOf(direction));
invalidate();
}
и я хотел, чтобы это invalidade() снова вызывало функцию onDraw(Canvas canvas), но вместо этого вызывало сбой приложения.
Я не понимаю проблемы, хотя invalidate() был довольно простым.
Если бы кто-то мог помочь мне, я был бы очень признателен.
1 ответ
Решение
Использование postInvalidate()
вместо. Или же:
runOnUiThread(new Runnable () {
@Override
public void run() {
invalidate(view)
}
});