Intereting Posts
Изменить цвет текста в android.R.layout.simple_list_item_2 Android Studio – JAVA_HOME не указывает на действительную установку JVM "Java.lang.IllegalArgumentException: никакие конфиги не соответствуют configSpec" При открытии камеры Intent Включение дополнительных возможностей Android Share Intent в зависимости от того, какой метод они предпочитают использовать Android Facebook SDK3.0, состояние сеанса ОТКРЫТИЕ Цель камеры не работать с Samsung Galaxy S3 Как открыть приложение «Календарь» в определенном календаре Где я могу разместить OBB-файл для тестирования файлов расширения Android (OBB) на моем Nexus 4? Как запустить OpenCV-код без OpenCv Manager Как скомпилировать статическую библиотеку с помощью Android NDK? Android: используйте только изображения xxhdpi Байт-массив изображения в изображение Прямая передача видео с беспроводной IP-камеры на мобильный телефон Android Ошибка при запуске Android (написанного в Kotlin), скомпилированного с Gradle2.0.0-alpha плагином Как прочитать содержимое сообщения нового в предстоящем сообщении в android?

Видео в WebView – ApplicationContext vs Activity Context

Я играю видео в WebView .

Если утечки памяти следует избегать, ApplicationContextWebView от контекста Activity ) должен использоваться для создания экземпляра WebView ( см. Это )

Если я прохожу в ApplicationContext и VideoView внутри WebView должен создать диалог (обычно для «Невозможно воспроизвести это видео»), я получаю BadTokenException ( см. Это )

Предполагаем ли мы решить проблему утечки памяти или потенциального ANR?

Solutions Collecting From Web of "Видео в WebView – ApplicationContext vs Activity Context"

Из вышеприведенных комментариев и дальнейших тестов я заключаю, что проблема связана с ошибкой в ​​SDK: при создании WebView через XML-макет деятельность передается как контекст для WebView, а не контекста приложения. По завершении операции WebView сохраняет ссылки на активность, поэтому активность не удаляется из памяти. Я написал для этого отчет об ошибке, см. Ссылку в комментарии выше.

 webView = new WebView(getApplicationContext()); 

Это определенно ошибка, или дизайн api действительно плох, он не дает никаких намеков на ошибку. Я считаю, что многие разработчики столкнулись с этой проблемой.