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();
}
}
答案 0 :(得分:2)
您不应该覆盖intentservice的onStartCommand。 来自javadoc for onStartCommand
您不应该为IntentService重写此方法。代替, 覆盖onHandleIntent(Intent),系统在调用时调用 IntentService收到一个启动请求。
你有没有理由不尝试从传递给onHandleIntent的意图中检索额外内容,如下所示?
@Override
protected void onHandleIntent(Intent intent) {
String myUrl = intent.getExtras().getString("myUrl");