2013-07-17 4 views
10

나는이 코드를 사용합니다. 유일한 문제는 내가 WebView를 종료하고 앱을 종료하고 심지어 전화기의 전원을 누르면 오디오 팟 캐스트에서 계속 재생됩니다.안드로이드 - 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()를 통해 호출해야합니다 : 여기

는 코드입니다. 이 웹보기 은 오프 스크린 취한 경우

일시이 웹보기 및 관련 DOM, 플러그인, 예를 들면, 자바 스크립트 등등과 연관된 여분의 처리는,이 불필요한 CPU 또는 네트워크 트래픽을 감소시키기 위해 호출 될 수있다. 이 WebView가 다시 "활성화"되면 onResume()을 호출하십시오.


응용 프로그램 내에서 WebViews 모두에 영향을 미치는, 또한 pauseTimers()있다 :

일시 정지 모든 레이아웃, 모든 WebViews에 대한, 그리고 자바 스크립트 타이머를 분석. 이 요청은이 WebView에만 국한되지 않고 전체 요청입니다. 이 은 응용 프로그램이 일시 중지 된 경우 유용 할 수 있습니다.

+0

안드로이드 버전 4.2 이전에는 문제가있는 것 같아요. 앱을 완전히 닫더라도 Youtube 오디오는 계속 재생됩니다. – Roel

+0

여기에 코드를 붙여 넣으 실 수 있습니까? – Coder

관련 문제