如何将字符串从OnStartCommand传递到IntentService中的OnHandleIntent?

时间:2013-05-31 01:45:42

标签: java android

Android / Java noob在这里。我有一个URL,我在我的应用程序的另一部分发现。我成功地将该URL作为字符串传递到intent服务的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();
            }
    }

1 个答案:

答案 0 :(得分:2)

您不应该覆盖intentservice的onStartCommand。 来自javadoc for onStartCommand

  

您不应该为IntentService重写此方法。代替,   覆盖onHandleIntent(Intent),系统在调用时调用   IntentService收到一个启动请求。

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

@Override
protected void onHandleIntent(Intent intent) {
    String myUrl = intent.getExtras().getString("myUrl");