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

Reply via email to