android:Runnable中的Handler抛出空指针异常

时间:2010-09-20 10:40:38

标签: android handler runnable

我有一个从互联网下载数据的线程

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 ();
   }
  }
};

每当我运行上面的代码时,我都会得到NullPointer异常。请帮我更新视图。

2 个答案:

答案 0 :(得分:0)

是的,这是正确的。您正在BP线程中创建处理程序..但您需要的是在HP活动中运行的主线程或GUI线程的上下文中创建它,因为主/ GUI线程的MessageQueue在这里是有问题的,因为你是用从其他线程收到的数据更新它。

答案 1 :(得分:-3)

通过巧妙地重写代码解决了这个问题。它运作良好。之前的问题是设置Handler的问题。