Как запустить веб-просмотры в нескольких потоках - PullRequest
0 голосов
/ 30 мая 2019

В моем задании говорится, что нужно создать простой веб-браузер, в котором веб-страница сохраняется на карте, а затем вы можете ее восстановить.

Каждая карта / веб-страница должна запускаться в своем собственном потоке.

Я уже настроил веб-просмотр и myWebViewClient для загрузки ссылок, и второе действие, гдея отображаю и могу добавлять новые веб-страницы.Выбор элемента ListView вызывает loadUrl(url) в MainActivity на WebView, но это нежелательный результат, мне нужно запустить веб-просмотр в потоке, убрать его в стек, а затем как-нибудь возобновить его задачу.

Ответы [ 2 ]

0 голосов
/ 30 мая 2019

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

Запустите действия WebView, используя флаги:Intent.FLAG_ACTIVITY_NEW_TASK и Intent.FLAG_ACTIVITY_MULTIPLE_TASK

Внутри этих действий вызовите getTaskId () и сделайте идентификатор доступным для вашего основного действия.Если вы хотите возобновить действие, сделайте следующее:

ActivityManager am = (ActivityManager) context.getSystemService(ACTIVITY_SERVICE);
am.moveTaskToFront(taskId, 0);

Требует разрешения android.Manifest.permission.REORDER_TASKS

эта работа, если управление памятью не разрушает вашу деятельность, в этом случае OnCreateвызовет метод.

0 голосов
/ 30 мая 2019

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

Для вашей задачи вы можете сделать одну вещь - загрузить html-данные в bacground.а затем установите этот ответ HTML для веб-просмотра в методе OnPost Asyntask

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