Неудачный () сбой

Я посылаю данные в класс, который я хотел изменить макет. Я отправляю данные следующим образом:

в то время как (подключен){

    //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)
}
});
Другие вопросы по тегам