2013-07-17 15 views
10

私はこのコードを使用していますが、唯一の問題はWebViewを終了してアプリを終了しても、ポッドキャストから再生し続ける。Android - WebViewを終了してもオーディオが再生され続ける

これをやめる方法は誰にも分かりますか?ここで

コードです:

public class PodcastsActivity extends BaseActivity //implements ActionBar.OnNavigationListener 
{  
    WebView webview = null; 

    @Override 
    public void onCreate(Bundle savedInstanceState) 
    { 
     //setTheme(R.style.Theme_Sherlock_Light); 
     super.onCreate(savedInstanceState); 
     //setContentView(R.layout.podcasts); 


     webview = new WebView(this); 
     webview.getSettings().setAppCacheEnabled(false); 
     webview.getSettings().setJavaScriptEnabled(true); 
     webview.setInitialScale(1); 
     webview.getSettings().setPluginState(PluginState.ON); 

     webview.setWebViewClient(new WebViewClient() { 
      @Override 
      public boolean shouldOverrideUrlLoading(WebView view, String url) { 
       view.loadUrl(url); 
       return true; 
      } 
     }); 




     //webSettings.setBuiltInZoomControls(true); 


     WebSettings webSettings = webview.getSettings(); 
     webSettings.setJavaScriptEnabled(true); 
     webSettings.setBuiltInZoomControls(true); 
     //webSettings.getMediaPlaybackRequiresUserGesture(); 
     webSettings.setAllowContentAccess(true); 
     webSettings.setEnableSmoothTransition(true); 
     webSettings.setLoadsImagesAutomatically(true); 
     webSettings.setLoadWithOverviewMode(true); 
     webSettings.setSupportZoom(true); 
     webSettings.setUseWideViewPort(true); 

     setContentView(webview); 
     webview.loadUrl("http://www.stitcher.com/podcast/entrepreneuronfirecom/entrepreneur-on-fire-tim-ferriss-other-incredible-entrepreneurs");   

    } 

// public void onBackPressed () 
// { 
//  Class.forName("com.***.HTML5WebView").getMethod("onPause", (Class[]) null). 
//  invoke(html5WebView, (Object[]) null); 
// } 


    @Override 
    public boolean onKeyDown(int keyCode, KeyEvent event) 
    { 
     if ((keyCode == KeyEvent.KEYCODE_BACK) && webview.canGoBack()) 
     { 
      webview.goBack(); 
      return true; 
     } 
     return super.onKeyDown(keyCode, event); 
    }  

    @Override 
    public void onStop() 
    { 
     super.onStop(); 
     // your code 

     webview.clearView(); 
    } 
+0

私は分かりませんが、終了時にキャッシュをクリアしようとしています。 'onPause()'の中で: 'mWebView.clearCache(true); mWebView.getSettings()。setAppCacheEnabled(false); ' –

+0

今すぐ試してください - ありがとうございます。数分後に何が起こるかを報告します:) – Genadinik

+0

実際には、super.onPageFinished(view、url);と表示されます。アクティビティタイプでは未定義です。それを動作させるために何をする必要があるのか​​分かりますか? – Genadinik

答えて

24

あなたは、それぞれ、自分の活動のonPause()onResume()からWebView's onPause()onResume()に通じ呼び出す必要があります。

一時停止任意の本のWebViewに関連する余分な処理とその 関連するDOM、プラグインは、JavaScriptなどたとえば、このWebViewの がオフスクリーン取られている場合、これは不必要なCPUや ネットワークトラフィックを削減するために呼び出すことができます。このWebViewが再び「アクティブ」になったら、onResume()を呼び出します。


は、アプリケーション内のWebViewsのすべてに影響を与える、またpauseTimers()あります:

一時停止すべてのレイアウト、すべてのWebViewsのため、およびJavaScriptのタイマーを解析します。 これは、このWebViewだけでなく、グローバルな要求です。この は、アプリケーションが一時停止している場合に役立ちます。

+0

あなたのアプリを完全に閉じてもYoutubeのオーディオは再生され続けます。 – Roel

+0

あなたのコードをここに貼り付けることができますか? – Coder

関連する問題