Android/Java noob здесь. У меня есть URL-адрес, который я обнаруживаю в другой части моего приложения. Я успешно передаю этот URL как строку в OnStartCommand службы намерения. Затем я хотел бы сделать эту строку, содержащую мой URL, доступной для HttpURLConnection, находящейся в потоке в OnHandleIntent, как показано ниже. Как я могу получить URL-адрес внутри строки myUrl в OnHandleIntent?Как передать строку из OnStartCommand в OnHandleIntent в IntentService?
@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();
}
}
re: overriding onStartCommand это может быть ошибка noob. Я использовал методы source> override/implement, и вот как Eclipse вставил его. Что касается получения дополнительных функций внутри OnHandleIntent, когда я пытаюсь это Eclipse говорит, что «намерение не может быть разрешено». Я просмотрел кучу дискуссий о том, как передать строки в службу Intent, и единственным способом, с которым мне удалось работать до сих пор, - это получить их внутри OnStartCommand (или OnStart, который, как я полагаю, теперь устарел). –
Проверьте имя параметра. Я назвал это «намерение», но в вашем исходном коде вы назвали его «intentNotify». Таким образом, ваш будет String myUrl = intentNotify.getExtras(). GetString ("myUrl"); –
да! Это то, что я получаю для копирования и вставки другого намеренного сервиса, который я использовал ранее. Все еще учиться, но опечатки, подобные этому, по-прежнему слишком часто кусают меня. Большое спасибо за то, что нашли время ответить на мой вопрос. –