我有点困惑,为什么我无法找到问题的结果。
我想创建一个后台服务,请求一个php文件返回一个json字符串,然后发送一个带有来自这个json字符串的内容的Notification。
所以我可以向用户发送类似的通知。
这怎么可能。
当时的Windows Phone就像是一个运行30分钟的定期后台服务,当我想发送即时通知时,我必须在那里使用服务。
答案 0 :(得分:0)
您可以使用Volley
。
您可以将此代码用作参考:
package com.exampfle.real;
import com.android.volley.RequestQueue;
import com.android.volley.Response;
import com.android.volley.VolleyError;
import com.android.volley.toolbox.StringRequest;
import com.android.volley.toolbox.Volley;
import android.app.AlertDialog;
import android.app.Service;
import android.content.Context;
import android.content.Intent;
import android.os.Binder;
import android.os.IBinder;
import android.util.Log;
public class RealService extends Service{
private static final String TAG="RealService";
private boolean isRunning=false;
private IBinder mBinder=new MyBinder();
private boolean intenetAccess=false;
/* Change here */
private RequestQueue reQueue;
private final String url="http://www.google.com";
public boolean SendRequest()
{
/* Change here */
reQueue = Volley.newRequestQueue(this);
StringRequest request=new StringRequest(com.android.volley.Request.Method.GET,
url,
new Response.Listener<String>() {
@Override
public void onResponse(
String response) {
intenetAccess=true;
}
},
new Response.ErrorListener() {
@Override
public void onErrorResponse(
VolleyError error) {
intenetAccess=false;
}
});
try{
reQueue.add(request);
}
catch(Exception e){}
return intenetAccess;
}
@Override
public void onCreate() {
super.onCreate();
Log.i(TAG, "Service onCreate");
isRunning=true;
}
@Override
public IBinder onBind(Intent intent) {
Log.i(TAG, "Service onBind");
return mBinder;
}
@Override
public void onRebind(Intent intent) {
Log.i(TAG, "Service onRebind");
super.onRebind(intent);
}
@Override
public boolean onUnbind(Intent intent) {
Log.i(TAG, "Service onUnBind");
return true;
}
@Override
public void onDestroy() {
isRunning=false;
Log.i(TAG, "Service onDestroy");
super.onDestroy();
}
public class MyBinder extends Binder
{
RealService getService()
{
return RealService.this;
}
}
}
希望它对你有所帮助:)