У меня есть 5 аудио, которые я передаю в адаптер, и в onbind я загружаю этот URL в веб-просмотре, когда я нажимаю кнопку «Назад», аудио не останавливается, я уничтожаю веб-просмотр, но он работает в последней позиции элемента веб-просмотра ..
У меня есть список 5 встроенных URL-адресов звукового облака , которые я передаю в Адаптер .
meditationFavSCAdapter = new MeditationFavSCAdapter(FavMeditationActivity.this, favMeditationList, this);
recyclerMeditationfav.setAdapter(meditationFavSCAdapter);
if(favMeditationList.size() > 0) {
for(int i=0;i<favMeditationAPI.getData().size();i++) {
favMeditationList.add(favMeditationAPI.getData().get(i));
}
}
meditationFavSCAdapter.notifyDataSetChanged();
В пункте утилита просмотра я объявляю webview (xml вещь). И в методе Onbind я загружаю этот URL в веб-представлении.
videoWebView.getSettings().setJavaScriptEnabled(true);
videoWebView.getSettings().setCacheMode( WebSettings.LOAD_DEFAULT );
videoWebView.getSettings().setLoadWithOverviewMode(true);
videoWebView.getSettings().setUseWideViewPort(false);
videoWebView.getSettings().setUserAgentString("Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0.2049.0 Safari/537.36");
//Load Url
videoWebView.loadData(favMeditationList.get(position).getEmbedCode(), "text/html" , "utf-8" );
Для уничтожения веб-просмотра
public void destroyWebView() {
if(videoWebView != null) {
videoWebView.loadUrl("");
videoWebView.loadData("", "text/html" , "utf-8" );
videoWebView.clearHistory();
// NOTE: clears RAM cache, if you pass true, it will also clear the disk cache.
// Probably not a great idea to pass true if you have other WebViews still alive.
videoWebView.clearCache(true);
// Loading a blank page is optional, but will ensure that the WebView isn't doing anything when you destroy it.
videoWebView.loadUrl("about:blank");
videoWebView.onPause();
videoWebView.removeAllViews();
videoWebView.destroy();
// Null out the reference so that you don't end up re-using it.
videoWebView = null;
}
}
Я вызываю эту функцию, когда пользователь нажимает кнопку Назад
@Override
public void onBackPressed() {
meditationFavSCAdapter.destroyWebView();
super.onBackPressed();
}
Но этот код уничтожает последний веб-просмотр в утилизаторе. Поэтому, когда я воспроизводю первый звук веб-просмотра и нажимаю кнопку «Назад», звук по-прежнему воспроизводится в фоновом режиме, тогда как при воспроизведении последнего аудио (веб-просмотра) он останавливается при вызове backpressed. Так что мне нужно уничтожить все webview в переработке. Но я не знаю, как ...