如何在android

时间:2017-02-02 13:38:30

标签: android web-services service

我正在开发一个应用程序,我必须每隔5分钟点击RESTful Web服务,检查新数据是否更新,即使用户关闭了应用程序。我这样做了

@Override
public int onStartCommand(Intent intent, int flags, int startId) {


    RequestQueue requestQueue = Volley.newRequestQueue(this);


    String url = "http://www.abcert.com/wp-json/wp/v2/posts";
    StringRequest stringRequest = new StringRequest(Request.Method.GET, url,
            new Response.Listener<String>() {
                @Override
                public void onResponse(String response) {
                    boolean Str;
                    try {
                        JSONArray jsonArray =new JSONArray(response);
                        Log.i("JSON",""+jsonArray);


                            JSONObject jsonObject = jsonArray.getJSONObject(0);
                            int id = jsonObject.getInt("id");

                           Log.i("MyService is on the",""+id);


                    } catch (JSONException e) {
                        e.printStackTrace();
                    }



                }
            },
            new Response.ErrorListener() {
                @Override
                public void onErrorResponse(VolleyError error) {

                    Log.i("Hey","Something went wrong");

                }
            });
    //add request to queue
    requestQueue.add(stringRequest);


    return START_STICKY;
}

但是没有成功。当我关闭应用程序服务时,START_STICKY无效。

2 个答案:

答案 0 :(得分:0)

  

我正在开发一个应用程序,我必须每隔5分钟点击RESTful Web服务,检查新数据是否更新,即使用户关闭了应用程序。

运行无限期服务并不是理想的解决方案。 Read this

为此目的使用background scheduler,因为它还可以有效地使用电池。

答案 1 :(得分:0)

许多应用使用geo_point连接到其数据库,用于特定任务并在后台运行。

与Facebook运行Service一样,Instagram运行MessagingService。如果您愿意,可以同时使用NotificationService,也可以选择handler

使用Scheduler的示例:

Handler