1

Android/Java 菜鸟在这里。我在应用程序的另一部分发现了一个 URL。我成功地将该 URL 作为字符串传递到意图服务的 OnStartCommand 中。然后,我想让包含我的 URL 的字符串对驻留在 OnHandleIntent 中的线程中的 HttpURLConnection 可用,如下所示。如何将 myUrl 字符串中的 URL 获取到 OnHandleIntent 中?

@Override
    public int onStartCommand(Intent intent, int flags, int startId) {
        String myUrl;
        myUrl = intent.getExtras().getString("myUrl");

         return super.onStartCommand(intent, flags, startId);   
    }

    @Override
    protected void onHandleIntent(Intent intentNotify) {
        try {
              URL url = new URL("myUrl");
              HttpURLConnection con = (HttpURLConnection) url.openConnection();
              readStream(con.getInputStream());
              } catch (Exception e) {
              e.printStackTrace();
            }
    }
4

1 回答 1

2

您不应该覆盖意图服务的 onStartCommand。来自onStartCommand 的 javadoc

你不应该为你的 IntentService 覆盖这个方法。相反,重写 onHandleIntent(Intent),当 IntentService 接收到启动请求时系统调用它。

您是否有理由不尝试从传递给 onHandleIntent 的意图中检索额外内容,如下所示?

@Override
protected void onHandleIntent(Intent intent) {
    String myUrl = intent.getExtras().getString("myUrl");
于 2013-05-31T01:57:31.753 回答