2015-12-19 3 views
0

У меня есть активность, которая запускает WebView и вводит некоторые JS на сайт (который у меня отсутствует) и возвращает мне некоторые данные. Мне нужно сделать то же самое на фоне, со службой. Как я могу это сделать ?Веб-просмотр в backgroud: это плохая практика? Решение HttpClient?

ПРИМЕЧАНИЕ: Я уже используя IntentService, AlarmManager и BroadcastReceivers. Я только хочу знать, лучший способ реализовать эту услугу (WebView, Http-клиент, другие ..)

Ps:. Я думаю, что если я экземпляр WebView 0Wx0 через сервис будет загрязнен. Я ошибаюсь ?

Пс: Я немного читал о HttpClient, но я не знаю, полезен ли он для меня.

Спасибо!

ответ

0

webView.loadUrl() является асинхронным

поэтому его уже на фоне потока: он возвращается немедленно и WebView продолжает работать в отдельном потоке.

Чтобы получить обратный вызов для использования погрузочной WebView страницы WebViewClient.onPageFinished(....)

+0

Извините, я не был чист. Я фактически использую onPageFinished в своем пользовательском интерфейсе WebView. Но мне нужно сделать ту же работу в фоновом режиме, с сервисом. –

0

есть свой сервис создать новую Webview деятельность. поэтому на каком-то событии в фоновом режиме вы можете начать работу с веб-просмотром и сделать то же самое. В зависимости от типа события вы можете использовать намерениеService в противном случае липкое долгое время службы

+0

Я использую IntentService для этого. Но 'WebView' может быть создан только из UI Thread. Мне нужно сделать это с помощью IntentService:/ –

+0

Использовать метод runonuithread возможно – j2emanue