2013-10-22 192 views
0

我需要啓動後臺任務。任務調用異步HTTP請求,如果條件有效,則顯示警報。Android後臺任務

我實現它,但我收到此錯誤:

java.lang.RuntimeException: Can't create handler inside thread that has not called Looper.prepare()

這是我的Java代碼:

Timer timer = new Timer(); 
    timer.schedule(new RequestScheduledTask(), intervalTask); 

    class RequestScheduledTask extends TimerTask { 
    @Override 
    public void run() { 
      myCall(); 
    } 
} 

你能幫助我嗎?

感謝

盧卡

+0

做了我的答案更新 –

回答

0

按照下面的帖子你是在一個線程做的事情是指在主線程上被稱爲!什麼是myCall();在做什麼?

,不要做與異步任務的http請求的那不好的做法。

我會電子書籍使用凌空:

[編輯]

好其負載指示是應該的主線程上調用。我想你是在AsyncTask中做的。 您可以使用Activity.runOnUiThread(Runnable())運行可運行的程序來顯示它。

0

例如,我需要在更改數據時刷新適配器列表。從網絡服務器返回的數據可以改變或不改變。如果它被更改,我必須刷新列表視圖/適配器,否則什麼都不是。

myCall調用服務器,獲取數據響應(使用其他框架,如volley),然後更新列表視圖。

當MYCALL開始我想顯示加載指示器,但是當我告訴它,應用程序崩潰與運行時異常

java.lang.RuntimeException: Can't create handler inside thread that has not called Looper.prepare()