android: обработчик из Runnable выбрасывает исключение нулевого указателя - PullRequest
0 голосов
/ 20 сентября 2010

У меня есть тема, которая загружает данные из интернета

public class Bp implements Runnable
{
Handler myHandler;
public void setHandler(Handler myHandler)
{ this.myHandler=myHandler; }
....
myHandler.sendEmptyMessage (0);
}

Существует действие, которое необходимо обновить в соответствии с загруженными данными.

public class Hp extends Activity implements Runnable
{
....
public Handler myHandler = new Handler() {
  public void  handleMessage(Message msg) {
 //TODO handle myHandler from "Bp" Thread     
 //TODO remove Queue's View 
   if(m_adapter2.getCount ()==6)
   {
    m_adapter2.remove (queue);         //removing view named queue from adapter
    m_adapter2.notifyDataSetChanged ();
   }
  }
};

Всякий раз, когда я запускаю код выше Iполучить исключение NullPointer. Пожалуйста, помогите мне обновить представление.

Ответы [ 2 ]

0 голосов
/ 01 декабря 2010

Решил проблему, аккуратно переписав код, и он работал хорошо. Кажется, раньше были проблемы с настройкой Handler.

0 голосов
/ 21 октября 2010

да, это правильно.Вы создаете обработчик в потоке BP ... но вам нужно создать его в контексте основного потока или потока GUI, работающего в действии HP, потому что здесь возникает вопрос MessageQueue основного потока / потока GUIобновив его данными, полученными из другого потока.

...