我正在尝试构建一个不断向Volley发送http请求的服务:
public class inviadati extends Service {
我读到Service是一个上下文,所以我应该使用“this”来引用它
public inviadati() {
RequestQueue mRequestQueue = Volley.newRequestQueue(this);
但是我一直在RequestQueue行上得到一个NullPointerException。有什么想法吗?
P.S我已经尝试了getApplicationContext(),getActivity(),getBaseContext()但它们都没有工作。
答案 0 :(得分:0)
您正在实施构造函数。你不应该为Service
这样做。相反,覆盖onCreate
方法并将代码放在那里,就像这样
public class inviadati extends Service {
private RequestQueue mRequestQueue;
@Override
public void onCreate() {
super.onCreate();
mRequestQueue = Volley.newRequestQueue(this);
}
}
答案 1 :(得分:0)
添加此代码并更改服务类名称Inviadati
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
Log.i(TAG, "Service onStartCommand");
new Thread(new Runnable() {
@Override
public void run() {
for (; ; ) {
try {
Thread.sleep(1000 * 60 * 2); // every 2 minuts this service send data
} catch (Exception e) {
}
RequestQueue mRequestQueue = Volley.newRequestQueue(this);
}
}
}).start();
return Service.START_STICKY;
}