2011-10-19 57 views
1

所以,我使用Asynctask加載URL,並且在下載開始之前處理了所有可能的連接問題,但現在當從數據切換到WiFi時,我的應用程序組關閉下載時。所以問題是:Android:在下載期間強制關閉連接更改

我需要做一個服務的Asynctask或有沒有辦法暫停它,並在有連接時恢復?我已經有一個接收器,開始下載後右邊有連接:

if (isOnline()) { 
     getData(); 
    } else { 
     IntentFilter intentFilter = new IntentFilter(
       "android.net.conn.CONNECTIVITY_CHANGE"); 
     registerReceiver(new BroadcastReceiver() { 
      @Override 
      public void onReceive(Context context, Intent intent) { 
       // TODO Auto-generated method stub 
       if (isOnline()) { 
        unregisterReceiver(this); 
        getData(); 
       } 
      } 
     }, intentFilter); 
    } 

但我怎麼能恢復的AsyncTask連接可用之後?

回答

0

這絕對是你想在後臺做一個服務。我可以建議看看IntentService課程的文檔嗎?通過在服務中這樣做,您不必混淆確保清理活動中的AsyncTask內容的所有問題。該服務將繼續在後臺運行,直到下載完成。

+0

感謝您的好評。下面是我發現的一個有用的教程,如果其他人也需要它:http://mobile.tutsplus.com/tutorials/android/android-fundamentals-intentservice-basics/ –

+0

另一個問題,如果你不介意的話:下載仍然不會加載時連接發生變化時不會完成。否則,它工作正常。如何知道下載是否被中斷?我是否在onCreate方法中註冊了Connectivity Change Receiver,並在每次連接更改和完成時啓動下載方法,並設置布爾值false以讓接收方知道下載成功?必須有更簡單的方法。 –

+0

@Liro這可能是最好的問題,因爲在這裏的另一個問題:)我知道如果我看到它,我會投它並嘗試回答它;) –