Android(PhoneGap)-通过推送通知中的按钮单击事件发送HTTP请求

时间:2018-07-23 13:11:10

标签: java android http phonegap

我已经在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;
  }
}

1 个答案:

答案 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();