Как я могу иметь задание в фоновом режиме? - PullRequest
0 голосов
/ 22 января 2019

Я работаю в проекте, в котором нам нужно загрузить Activity с WebView, нам нужно загрузить HTML с Angular, но нам нужно иметь это действие в фоновом режиме, пока это действие / webview с Angular окончательно не загрузится.

Есть ли способ сделать это с действием?

Ответы [ 2 ]

0 голосов
/ 22 января 2019

WebView большую часть времени находится внутри Activity. Таким образом, Activity, где находится WebView, всегда будет там, пока вы его не убьете. Если вы действительно не хотите, чтобы Activity действительно работал в фоновом режиме, вместо этого используйте Service.

Поскольку вам, возможно, придется использовать Service для того, что вы хотите, тогда, я думаю, вам нужно использовать BroadcastReceiver внутри Service. Внутри BroadcastReceiver у вас есть пользовательский тег, который при вызове с помощью sendBroadcast() будет startActivity() вашего веб-просмотра / активности. Я не гарантирую скорость загрузки для WebView, потому что вы упомянули, что хотите предварительно загрузить страницу, но это будет сделано. Чтобы уменьшить время загрузки WebView, необходимо включить кэширование на WebView.

Другая проблема, которая, я думаю, возникнет, если вы действительно захотите держать WebView на заднем плане (если вы даже можете это сделать), это утечка памяти. Поскольку вы хотите постоянно поддерживать WebView, даже если он даже не отображается на экране, вы, вероятно, не захотите собирать мусор, что будет серьезной проблемой на устройствах с низким объем памяти. Вы не будете часто получать это на устройствах с большим объемом памяти, но не на 300 МБ устройств.

0 голосов
/ 22 января 2019

Когда Activity переходит в фоновый режим, он больше не работает. Вы можете выполнять фоновые задачи с помощью Service, но не Activity. Вы можете работать с onResume() методом вашего Activity с веб-обзором, когда angular загрузит необходимую информацию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...