我已经在Android PhoneGap应用“推送通知”窗口中实现了一个操作按钮,该按钮向服务器执行HTTP请求以处理服务器操作。
执行HTTP请求时,可能会出现异常,因为它似乎无法正常工作。 (当前,由于我不会在这里介绍的原因,我们无法查看异常本身)
我们通过在另一个线程中调用HTTP请求来实现,因为我们在Stackoverflow中看到的答案是您无法在主线程上实现调用HTTP请求。
任何帮助将不胜感激。
这是我的BroadcastReceiver类:
public class ExpressPayRequest extends BroadcastReceiver{
@Override
public void onReceive(Context Context, Intent arg1) {
Context.startService(new Intent(Context, PostRequestService.class));
}
}
服务看起来像这样:
public class PostRequestService extends Service{
@Override
public void onCreate() {
super.onCreate();
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
try{
URL url = new URL("http://someGETRequest");
HttpURLConnection client = (HttpURLConnection)url.openConnection();
int responseCode = client.getResponseCode();
}
catch(IOException e){
Log.e("LOGEntry", "error log: " + e.getMessage(),e);
}
return START_NOT_STICKY;
}
@Override
public IBinder onBind(Intent arg0) {
// TODO Auto-generated method stub
return null;
}
}
答案 0 :(得分:0)
我自己弄清楚了
如果有人对此解决方案感兴趣,那就是创建一个新线程而不是启动新服务
这是我使用的代码:
Thread thread = new Thread(){
public void run(){
try{
URL url = new URL("http://test");
HttpURLConnection client = (HttpURLConnection)url.openConnection();
client.connect();
int responseCode = client.getResponseCode();
} catch (IOException e) {
e.printStackTrace();
}
}
};
thread.start();