2013-07-17 8 views
10

खेल रहा है मेरे पास यह कोड है जो काम करता है और इसके साथ एकमात्र समस्या यह है कि यदि मैं वेबव्यू छोड़ देता हूं और ऐप को बंद करता हूं, और यहां तक ​​कि फोन पर भी बिजली दबाता हूं, तो ऑडियो पॉडकास्ट से खेलता रहता है।एंड्रॉइड - वेबव्यू से बाहर निकलने पर, ऑडियो अभी भी

क्या कोई इसे जानता है कि इसे कैसे रोकें?

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

मुझे यकीन नहीं है लेकिन बाहर निकलने पर कैश को साफ़ करने का प्रयास करें। 'रोकें() 'में:' mWebView.clearCache (सत्य); mWebView.getSettings()। setAppCacheEnabled (false); ' –

+0

अब इसे आजमाएं - धन्यवाद। कुछ मिनटों में क्या होता है इसके साथ रिपोर्ट करेगा :) – Genadinik

+0

यह वास्तव में कहता है कि super.onPageFinished (देखें, यूआरएल); प्रकार गतिविधि के लिए अपरिभाषित है। क्या आपको पता चलेगा कि इसे काम करने के लिए क्या करने की ज़रूरत है? – Genadinik

उत्तर

24

आप क्रमश: WebView's onPause() और onResume() अपनी गतिविधि के onPause() और onResume() से करने के लिए के माध्यम से फोन करना चाहिए,:

यहाँ कोड है।

विराम किसी भी अतिरिक्त इस WebView और उसके जुड़े डोम, प्लग इन, उदाहरण के लिए जावास्क्रिप्ट आदि से संबंधित संसाधन, अगर यह WebView गुप्त रखा जाता है, यह अनावश्यक CPU या नेटवर्क यातायात को कम करने के कहा जा सकता है। जब यह वेबव्यू फिर से "सक्रिय" होता है, तो रेज़्यूम() पर कॉल करें।


वहाँ भी pauseTimers() है, जो अपने आवेदन के भीतर WebViews के सभी को प्रभावित करता है है:

विराम सभी लेआउट, पार्स करने सभी WebViews के लिए, और जावास्क्रिप्ट टाइमर। यह एक वैश्विक अनुरोध है, जो इस वेबव्यू तक ही सीमित नहीं है। यह उपयोगी हो सकता है यदि एप्लिकेशन रोक दिया गया है।

+0

बहुत अजीब है कि यह स्वचालित रूप से ऐसा नहीं करता है। ऐसा लगता है कि यह 4.2 से पहले एंड्रॉइड संस्करणों में केवल एक समस्या है। उदाहरण के लिए यूट्यूब ऑडियो तब भी खेलता रहता है जब आप अपना ऐप पूरी तरह बंद कर देते हैं। – Roel

+0

क्या आप अपना कोड यहां पेस्ट कर सकते हैं? – Coder

संबंधित मुद्दे