如何实现从服务器获取更新的过程?

时间:2016-01-26 11:57:32

标签: java android

我正在开发一个应用程序,经常(例如,每5分钟一次)请求服务器使用HTTP请求更新配置版本。

实施它的最佳方法是什么?

Service适合这种情况吗?或者可能只是一个带循环的线程就够了?

1 个答案:

答案 0 :(得分:1)

Service在UI /主线程上运行,而Intent Service在后台线程上运行,它还有另一个优势,即服务是Intent Service在完成任务后自行关闭。

<强>服务

  

服务是一个应用程序组件,可以在后台执行长时间运行的操作,但不提供用户界面

意向服务

  

IntentService是服务的基类,可根据需要处理异步请求(表示为Intents)。客户端发送请求   通过startService(Intent)调用;该服务根据需要启动,   使用工作线程依次处理每个Intent并自行停止   当它用完时

只需创建一个扩展IntentServiceonHandleIntent()方法的类,即可获取配置文件。

我不知道你是如何通过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