Try this: Try call webtv.*destroy()* in your onDestroy() method. I'm just guessing here, but it's worth a try.
On a side-note: Don't call 'this.finish()' in your onPause() method. That is usually bad news. On Friday, October 5, 2012 1:41:37 PM UTC-4, Power Android wrote: > > > In my webview I have loaded a URL which have an embeded video player of > a tv channel live stream. It is working correctly in all the OS version of > Android except ICS(4). First time It plays the video well, but when I go > back and come again in that page containing the video then the video doesnt > loads and shows a blank white page. If I force stop the app from the > application setting and start the app again then It runs well then appears > white screen again as usual, I have implemented a lot of tactics and this > is the latest , I am totally stuck here: > > > > public class Livetvwebview extends Activity { > > RelativeLayout a; > WebView webtv; > String url; > VideoView video; > WChromeClient chromeClient; > WebViewClient wvClient; > > @Override > protected void onCreate(Bundle savedInstanceState) { > // TODO Auto-generated method stub > super.onCreate(savedInstanceState); > // requestWindowFeature(Window.FEATURE_NO_TITLE); > getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, > WindowManager.LayoutParams.FLAG_FULLSCREEN); > getWindow().requestFeature(Window.FEATURE_PROGRESS); > setContentView(R.layout.livewebview); > Toast.makeText(getApplicationContext(), > "Channel is loading..This may take upto a minute", > Toast.LENGTH_LONG).show(); > url = getIntent().getStringExtra("tvchannel"); > Log.i("TVURL", url); > webtv = (WebView) findViewById(R.id.webViewlive); > webtv.clearCache(true); > webtv.loadUrl(url); > > webtv.getSettings().setLoadWithOverviewMode(true); > webtv.getSettings().setUseWideViewPort(true); > > webtv.setScrollBarStyle(WebView.SCROLLBARS_OUTSIDE_OVERLAY); > > webtv.setWebChromeClient(new WChromeClient()); > webtv.setWebViewClient(new myWebClient()); > webtv.getSettings().setJavaScriptEnabled(true); > > webtv.getSettings().setPluginState(PluginState.ON); > > webtv.getSettings().setDomStorageEnabled(true); > } > > > > public class myWebClient extends WebViewClient { > @Override > public void onPageStarted(WebView view, String url, Bitmap favicon) { > // TODO Auto-generated method stub > > super.onPageStarted(view, url, favicon); > > } > > @Override > public boolean shouldOverrideUrlLoading(WebView view, String url) { > // TODO Auto-generated method stub > > view.loadUrl(url); > > return true; > } > > @Override > public void onPageFinished(WebView view, String url) { > // TODO Auto-generated method stub > super.onPageFinished(view, url); > > } > } > > @SuppressLint("NewApi") > @Override > protected void onPause() { > // TODO Auto-generated method stub > WebSettings webSettings = webtv.getSettings(); > webSettings.setCacheMode(WebSettings.LOAD_NO_CACHE); > webtv.onPause(); > this.finish(); > super.onPause(); > > } > > @SuppressLint("NewApi") > @Override > protected void onResume() { > > > > webtv.onResume(); > super.onResume(); > > } > > > > > > > @Override > protected void onDestroy() { > // TODO Auto-generated method stub > // android.os.Process.killProcess(android.os.Process.myPid()); > Editor editor = getSharedPreferences("clear_cache", > Context.MODE_PRIVATE).edit(); > editor.clear(); > editor.commit(); > trimCache(this); > > super.onDestroy(); > } > > class WChromeClient extends WebChromeClient { > @Override > public void onProgressChanged(WebView view, int progress) { > Log.i("Method", "Onrogresschanged"); > > Livetvwebview.this.setTitle("Loading..."); > Livetvwebview.this.setProgress(progress * 100); > if (progress == 100) > Livetvwebview.this.setTitle("LiveTv"); > > } > > @Override > public void onShowCustomView(View view, CustomViewCallback callback) { > // TODO Auto-generated method stub > super.onShowCustomView(view, callback); > if (view instanceof FrameLayout) { > FrameLayout frame = (FrameLayout) view; > if (frame.getFocusedChild() instanceof VideoView) { > webtv.setVisibility(View.GONE); > video = (VideoView) frame.getFocusedChild(); > FrameLayout.LayoutParams par = new > FrameLayout.LayoutParams( > LayoutParams.MATCH_PARENT, > LayoutParams.MATCH_PARENT); > par.gravity = Gravity.CENTER_HORIZONTAL; > video.setLayoutParams(par); > frame.removeView(video); > a.addView(video); > video.setOnCompletionListener(new OnCompletionListener() { > > @Override > public void onCompletion(MediaPlayer mp) { > Toast.makeText(Livetvwebview.this, > "Video completed", Toast.LENGTH_LONG) > .show(); > > } > }); > > video.setOnErrorListener(new OnErrorListener() { > > @Override > public boolean onError(MediaPlayer mp, int what, > int extra) { > Toast.makeText(Livetvwebview.this, > "Encountered some error", > Toast.LENGTH_LONG) > .show(); > return true; > } > }); > video.start(); > } > > } > > } > } > > public static void trimCache(Context context) { > try { > File dir = context.getCacheDir(); > if (dir != null && dir.isDirectory()) { > deleteDir(dir); > > } > } catch (Exception e) { > // TODO: handle exception > } > } > > public static boolean deleteDir(File dir) { > if (dir != null && dir.isDirectory()) { > String[] children = dir.list(); > for (int i = 0; i < children.length; i++) { > boolean success = deleteDir(new File(dir, children[i])); > if (!success) { > return false; > } > } > } > > > return dir.delete(); > } > } > > Can anyone help me please? > > -- You received this message because you are subscribed to the Google Groups "Android Developers" group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en