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