2010-09-20 181 views
0

我有一個主題,從互聯網安卓:處理器從一個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異常。請幫助我更新視圖。

+0

我們可以有堆棧跟蹤嗎?附:命名類變量和臨時變量同樣會導致混淆! – fredley 2010-09-20 10:43:27

+0

fredley我正在嘗試使用BCP線程的「myHandler」將sendMessage發送到Activity Hp以更新UI。 myHandler只是在Bp中聲明它在Activity Hp中處理。我希望我的方向正確。 – 100rabh 2010-09-20 14:31:30

+0

已解決:只是寫了代碼整齊,它的工作 – 100rabh 2010-12-01 07:01:45

回答

-3

解決了這個問題,通過整齊地重寫代碼&它工作得很好。以前看到設置Handler時出現了問題。

0

是的,這是正確的。您正在BP線程中創建處理程序..但您需要的是在HP活動中運行的主線程或GUI線程的上下文中創建它,因爲主/ GUI線程的MessageQueue在此處存在問題,因爲您用從另一個線程收到的數據更新它。