2012-09-17 107 views
0

我正在使用凹凸android sdk。我有一個廣播接收器,我想根據不同的意圖過濾器更新我的用戶界面中的一些元素。例如從broadcastreceiver更新UI

else if (action.equals(BumpAPIIntents.NOT_MATCHED)) { 
       Log.i("Bump Test", "Not matched."); 
       BumpTest inst = BumpTest.instance(); 
       if(inst != null) { 

        inst.UpdateMyText("testing"); 
       } 

問題是,即使在logcat中,我可以看到日誌條目TextView的更新方法似乎沒有被稱爲

難道我做錯了什麼?

+0

什麼是「bump android sdk」? http://bu.mp/?並且從廣播接收機更新UI是錯誤的。當您的onReceive()被稱爲 –

+0

是時,您的應用程序不會保證運行。這就是我所說的sdk。什麼是改變textview然後從那個事件的好方法(NOT_MATCHED) – pocorschi

+0

我應該檢查應用程序是否正在運行,然後myapp.this.UpdateMyText(「測試」)? – pocorschi

回答

0

您不允許從其他線程(如調用BroadcastReceiver的線程)更新UI。你將不得不使用一個簡單的AsyncTask類。它是在執行需要很長時間才能完成的操作之後更新UI的唯一目的而創建的。將AsyncTask中的資源從互聯網上請求,這是一個好主意,因爲它不會阻止UI線程執行。好的副作用是它在主程序完成時調用一個函數,並且這個調用在UI線程上完成。