2013-09-12 3 views
0

В моем приложении для Android я хочу открыть веб-страницу в Webview. Веб-страница, которую я хочу открыть, также содержит видео. Для достижения этой функциональности я использовал WebChromeClient в своем приложении. Проблема в том, что OnBackPressed() этой деятельности некоторые видео не останавливаются, и они продолжают играть в фоновом режиме, хотя моя активность в Webview завершена. Я не знаю, почему это происходит. Я пробовал разные коды, но не мог решить эту проблему. Некоторые видео останавливаются автоматически, но некоторые продолжают играть в фоновом режиме. Как решить эту проблему?Webview Video не останавливается на Backpress - Android

Пожалуйста, помогите мне решить эту проблему.

Вот мой код:

@Override 
    protected void onDestroy() { 
     super.onDestroy(); 
     Log.e("Test HTML5:-", "onDestroy Called..."); 
     mWebView.stopLoading(); 
     // mWebView.clearCache(true); 
     // mWebView.clearHistory(); 
     // mWebView.pauseTimers(); 
     abc.removeView(mWebView); 
     mWebView.removeAllViews(); 
     mWebView.destroy(); 
     mWebView = null; 
     finish(); 
     Intent i = new Intent(getApplicationContext(), MainActivity.class); 
     i.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK); 
     i.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
     startActivity(i); 
    } 

ответ

1

написать этот код на OnPause()

@Override 
    protected void onPause() { 
     super.onPause(); 
     Log.e("Test HTML5:-", "onDestroy Called..."); 
     mWebView.reload(); 
     Intent i = new Intent(getApplicationContext(), MainActivity.class); 
     i.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK); 
     i.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
     startActivity(i); 
    } 
+0

Если я удалить его из 'onBackPressed()'? – zanky

+0

да нет необходимости переопределять onBackPressed() –

+0

Я пробовал этот код, но не работал. Я не знаю, почему он не работает. Я предполагаю, что активность создает любой фоновый медиа/аудио объект для воспроизведения этого файла, и мне придется уничтожить этот объект. Является ли это возможным ? – zanky

1

Используйте для onBackPressed

@Override 
    public void onBackPressed() { 
     mWebView.stopLoading(); 
     mWebView.removeAllViews(); 
     mWebView.destroy(); 
     mWebView = null; 
     finish(); 
     super.onBackPressed(); 
    } 
Смежные вопросы