我正在开发一个应用程序,我必须每隔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无效。
答案 0 :(得分:0)
我正在开发一个应用程序,我必须每隔5分钟点击RESTful Web服务,检查新数据是否更新,即使用户关闭了应用程序。
运行无限期服务并不是理想的解决方案。 Read this
为此目的使用background scheduler,因为它还可以有效地使用电池。
答案 1 :(得分:0)
许多应用使用geo_point
连接到其数据库,用于特定任务并在后台运行。
与Facebook运行Service
一样,Instagram运行MessagingService
。如果您愿意,可以同时使用NotificationService
,也可以选择handler
。
使用Scheduler
的示例:
Handler