How can I stop a YouTube video which is played in my webview? When I click on the back button the video doesn't stop and instead continues in the background.
Code:
webView = (WebView) findViewById(R.id.webview);
webView.getSettings().setPluginsEnabled(true);
webView.getSettings().setJavaScriptEnabled(true);
webView.getSettings().setBuiltInZoomControls(false);
webView.getSettings().setSupportZoom(false);
webView.loadData(myUrl,"text/html", "utf-8");
1) android:longClickable="false" 2) webView. setLongClickable(false); 3) webView. setOnLongClickListener(new OnLongClickListener() { @Override public boolean onLongClick(View v) { return true; } });
Alternatives to WebView If you want to send users to a mobile site, build a progressive web app (PWA). If you want to display third-party web content, send an intent to installed web browsers. If you want to avoid leaving your app to open the browser, or if you want to customize the browser's UI, use Custom Tabs.
If you have only 1 activity you can simply start the service and then call finish() on the activity. However, if you have multiple activities you have to make sure that you close them all (see also this post).
See the following post about WebView threads never stopping
Essentially you'll need to call the WebView's onPause method from your own Activity's onPause method.
The only trick with this is that you cannot call the WebView's onPause method directly because it is hidden. Therefore you will need to call it indirectly via reflection. The following code should get you started on setting up your own Activity's onPause method:
@Override
public void onPause() {
super.onPause();
try {
Class.forName("android.webkit.WebView")
.getMethod("onPause", (Class[]) null)
.invoke(webview, (Object[]) null);
} catch(ClassNotFoundException cnfe) {
...
} catch(NoSuchMethodException nsme) {
...
} catch(InvocationTargetException ite) {
...
} catch (IllegalAccessException iae) {
...
}
}
Note that the variable 'webview' in the try block above is a private instance variable for the class and is assigned to in the Activity's onCreate method.
Solution: 1 -
After spending lot of time, I got the conclusion to pause the video which is playing with WebView <iframe>
concept of HTML.
Just override the onPause()
method on Activity or Fragment whereever you used WebView
, and call it. It works for me.
@Override
public void onPause() {
super.onPause();
mWebView.onPause();
}
@Override
public void onResume() {
super.onResume();
mWebView.onResume();
}
Solution: 2 - If above solution doesn't work for you then you can force WebView to load a non existent html file.
mWebview.loadUrl("file:///android_asset/nonexistent.html");
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With