我正在開發需要向/從服務器發送和接收http消息的Android項目(API級別10)。Android中的通用網絡管理器
我實現了一個名爲NetworkManager的類,它提供了不同的方法,一個用於每個http請求(例如:loginRequest(用戶傳遞),RegistrationRequest(用戶.....))。
所有這些方法生成傳遞給名爲sendMessage的方法的JSON對象,該方法實際上建立連接,發送和接收響應(也是json對象)。
當然,網絡調用非常耗時,所以我首先決定在網絡操作執行時使用AsyncTask來顯示progressDialog。
問題是,我需要在執行任何其他涉及結果本身由主線程完成的操作之前,從後臺線程獲取響應值。 同時,我想做一個AsyncTask的通用和可重用的實現。
例如:我有一個登錄活動,顯示2個EditText(用戶名,密碼)和一個名爲Login的按鈕。當我按登錄按鈕時,必須出現一個progressDialog,並且必須在完成doInBackground任務後處理。當然,我可以做到這一點的方法:
onClick(View v) //called when the login button is pressed
{
onPreExecute()
{
//Show the progress dialog
}
doInBackground()
{
//Retreive the login response (an integer containing a message code) using sendLoginRequest(username, password);
//return the response
}
onPostExecute(int response)
{
//Dispose the progress dialog, then loginSucessfull ? start new activity : show error toast
}
}
但是,這樣做的方式,我要實現對每一個請求,我需要要發送的異步任務我想如何避免,因爲如果我有N個請求,我應該創建擴展AsyncTask的N個類。
謝謝!
感謝您的答覆,很清楚!只需稍作修改,我就可以將您的代碼重用到我的項目中;-) – MastErAldo
如果通過單擊答案左側的綠色右側符號有助於接受答案。這樣你就可以欣賞答案,並幫助其他領導者走向正確的方向。這種社區的工作方式。 :) – Javanator