Android WebView не останавливается после нажатия пользователем

Потому что условные типы не работают таким образом, я полагаю? Это интересное предложение иметь ошибку «недостижимый код» в части string этого условного типа, но я не могу себе представить, чтобы кто-то сильно заботился о его реализации.

Технически и педантично, я мог бы указать, что T может быть пересечением 'fo' & 'whyNoError?', которое, хотя это и абсурдный тип, который в конечном итоге сводится к never, приводит компилятор путь, который вас может удивить о таких крайних случаях.

1110 Надеюсь, это поможет; удачи!

30
задан 14.04.2020, 14:56

6 ответов

Взято из https://stackoverflow.com/a/17690221/3032209 :

Вы должны обращаться к onPause () и onResume () WebView из onPause вашей деятельности ( ) и onResume () соответственно.

Приостанавливает любую дополнительную обработку, связанную с этим WebView и связанным с ним DOM, плагинами, JavaScript и т. Д. Например, если этот WebView отключен от экрана, это можно вызвать для уменьшения ненужного ЦП или сетевого трафика. Когда этот WebView снова «активен», вызовите onResume ().

11
ответ дан 14.04.2020, 14:56
  • 1
    Это не работает над Centos7.4, но Luoti' s ответ сделал, хотя это имеет больше смысла мне... – Vic 01.05.2018, 02:11

У меня ничего не работало на некоторых или на всех устройствах. Это точное решение, я думаю. У меня сработало хорошо.

Как остановить воспроизведение видео с YouTube в веб-браузере Android?

в качестве альтернативы для API> = 11 вы можете использовать _webview.onPause (); onPause активности / фрагмента

public void onPause() {
        // TODO Auto-generated method stub
        super.onPause();
        _webview.onPause();
}
10
ответ дан 14.04.2020, 14:57

Вы можете сделать это, используя метод onPause() вашего Activity:

@override
public void onPause() {
    super.onPause();
    if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
        webview.onPause();
    }
}

, добавив проверку для использования в API> = 11 (Сота)

3
ответ дан 14.04.2020, 14:58
  • 1
    Я все еще don' t видят, как это будет работать без umask рассмотрение режима создания файла по умолчанию апачем обычно (755) листовые файлы, неперезаписываемые группой. I' m застрявшая необходимость часто работать chmod g+w -R dir/ – Jeff Puckett 13.10.2017, 04:02

В деятельности onDestroy() сделать:

@Override
protected void onDestroy() {
    super.onDestroy();
    webView.destroy();
}
5
ответ дан 14.04.2020, 14:59
  • 1
    Хорошо работает также для Debain, за исключением того, что путь должен быть /etc/systemd/system/apache2.service.d/override.conf. – dma_k 15.02.2019, 08:54

попробуй это, надеюсь, это поможет:

@Override
public void onPause() {
    myWebView.onPause();
    myWebView.pauseTimers();
    super.onPause();
}

@Override
public void onResume() {
    super.onResume();
    myWebView.resumeTimers();
    myWebView.onResume();
}


@Override
protected void onDestroy() {
    myWebView.destroy();
    myWebView = null;
    super.onDestroy();
}
50
ответ дан 14.04.2020, 14:59

Вы должны позвонить:

webView.loadUrl("about:blank");

Это уничтожит все аудио / видео, а также объекты Javasript и остановит все запущенные функции в веб-просмотре

30
ответ дан 14.04.2020, 15:00
  • 1
    @MattB.That' s, потому что корректный doesn' t на самом деле уничтожают основной апачский процесс. Это говорит всем разветвленным детям заканчивать то, что они делают (служите своему последнему запросу), тогда УМРИТЕ. Новые дети создаются с новыми изменениями конфигурации. Определенные изменения конфигурации требуют, чтобы родитель был уничтожен и перезапущен, и umask является одним из тех изменений. Я надеюсь, что это имеет смысл. – Patrick James McDougle 15.03.2013, 04:08

Теги

Похожие вопросы