我正在開發一個應用程序,通常(例如,每5分鐘一次)使用HTTP請求向服務器請求配置的更新版本。如何實現從服務器獲取更新的過程?
實施它的最佳方法是什麼?
是Service
適合這種情況嗎?或者可能只是一個循環的線程就足夠了?
我正在開發一個應用程序,通常(例如,每5分鐘一次)使用HTTP請求向服務器請求配置的更新版本。如何實現從服務器獲取更新的過程?
實施它的最佳方法是什麼?
是Service
適合這種情況嗎?或者可能只是一個循環的線程就足夠了?
Service在UI /主線程上運行,而Intent Service在後臺線程上運行,它還有另一個優點,就是Intent服務在完成任務後關閉自身。
服務
A服務是可以在後臺執行長時間運行的操作,並且不提供用戶界面
意圖服務應用程序組件
IntentService是服務的基類,用於按需處理異步請求(表示爲Intents)。客戶通過startService(Intent)調用發送請求 ;如需要該服務已啓動, 處理每個意向依次使用工作線程,停止本身 當它運行工作
的。
只需創建一個類,它可以擴展IntentService和onHandleIntent()
方法獲取您的配置文件。
我不知道如何通過HTTP獲取配置文件,目的是爲Android提供一個名爲Volley的框架。它提供了傳統的HTTPRequest類
良好的HTTP處理一個簡單的HTTP請求看起來像這樣
final TextView mTextView = (TextView) findViewById(R.id.text);
...
// Instantiate the RequestQueue.
RequestQueue queue = Volley.newRequestQueue(this);
String url ="http://www.google.com";
// Request a string response from the provided URL.
StringRequest stringRequest = new StringRequest(Request.Method.GET, url,
new Response.Listener<String>() {
@Override
public void onResponse(String response) {
// Display the first 500 characters of the response string.
mTextView.setText("Response is: "+ response.substring(0,500));
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
mTextView.setText("That didn't work!");
}
});
// Add the request to the RequestQueue.
queue.add(stringRequest);
瞭解更多關於fetching data here。
簡答:_是的。使用服務。稍寬的解釋:使用服務將確保您的應用程序將在後臺獲取更新。使用線程將需要您的應用程序在前臺運行。在後臺運行服務是**不會**與使用'AsyncTask'運行任務混淆 –