2017-04-11 105 views
2

我想在使用Web服務的應用程序中進行登錄活動。提出請求的最佳做法是什麼?IntentService vs AsyncTask登錄活動?

我應該使用IntentService還是應該使用AsynkTask類並覆蓋它的方法?

+0

它是什麼樣的webservice? –

+0

對於小時間Web服務使用'AsncTask'。 –

+0

@jiteshmohite是一個Java SOAP ws –

回答

2

使用AsyncTask將有助於使你的代碼,你的情況更簡單。 在這種情況下,你將只使用一個類到另一個類。在這種情況下,您可以以最簡單的方式傳輸數據。

在第二種情況 - intentservice - 你必須寫/讀/收集/提取數據,時間滯後等。

編輯 1.您可以取消請求旋轉 2之前,您可以檢查您的請求正在進行,不要再啓動它。 3.您可以在登錄屏幕中禁用旋轉。

+0

是的,但是如果我旋轉我的屏幕,然後再次撥打電話...... –

+1

@MateutAlin即使您旋轉屏幕意圖服務也再次調用。你必須檢查當前數據是否適合你。在請求之前。 –

+0

@MateutAlin閱讀我更新的答案 – Vyacheslav

1

您應該使用Aysnc任務,因爲IntentService在後臺運行,因此必須在網絡呼叫響應後更新UI。

因此,異步任務對您的情況更好。

IntentService我們用於長時間的後臺運行任務,它會在完成工作後自行終止它。

0

AsyncTask只是在類中運行異步操作。

IntentService運行新服務並執行所需的操作。

這將是更容易使用的AsyncTask,因爲你可以使用它你的活動中,你可以運行它的意圖,目標活動(registrer,用戶區等)。

如果您使用IntentService,則必須創建綁定器,收集數據,監視它等等。爲此目的,IntentService將比它值得的工作多得多。

2

如果您使用IntentService,則必須實現活頁夾才能與UI進行通信,而AsyncTask則提供了用於更新UI的回調。

然而,AsyncTask有它開始每天調用活動啓動時的缺點。因此,要處理此問題,您可以使用AsyncTaskLoader,它爲您的後臺工作提供AsyncTask並處理其狀態,以避免通過配置更改再次啓動它。

Android開發教程對如何使用AsyncTaskLoader一個很好的例子。你可以找到它here