मैं अपनी गतिविधि के अंदर फ्लैश सामग्री प्रदर्शित करने के लिए वेबव्यू का उपयोग कर प्रयोग कर रहा हूं। सब कुछ बहुत अच्छी तरह से काम कर रहा है, लेकिन जब उपयोगकर्ता पृष्ठभूमि में गतिविधि को रखने के लिए घर की कुंजी हिट करता है, तो फ्लैश सामग्री चलती रहती है (ध्वनि खेलती रहती है, आदि)मेरी गतिविधि दृश्यमान नहीं होने पर मैं एंड्रॉइड वेबव्यू में फ़्लैश सामग्री को कैसे रोकूं?
मैंने देखा है कि दोनों स्टॉक एंड्रॉइड ब्राउज़र और डॉल्फिन ब्राउज़र प्रतीत होता है कि इस समस्या से बचने के लिए, और ब्राउजिंग गतिविधि को पृष्ठभूमि में डालते समय फ्लैश सामग्री को ठीक से रोकें।
आदर्श रूप में मैं एक समाधान है कि पूरी तरह से WebView अगर गतिविधि खत्म मारता है चाहते हैं, लेकिन अन्यथा यह रुक जाता है
यहाँ (मूल रूप से ब्राउज़र के डिफ़ॉल्ट व्यवहार को कॉपी) एक साधारण परीक्षण मैं एक साथ रखा है कि एक लोड हो जाता है है Kongregate पर खेल है, जिसमें कुछ पृष्ठभूमि संगीत दिया है:
public class BrowserTest extends Activity {
private WebView mWebView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mWebView = new WebView(this);
mWebView.getSettings().setJavaScriptEnabled(true);
mWebView.getSettings().setPluginsEnabled(true);
mWebView.loadUrl("http://m.kongregate.com/games/Jiggmin/the-game-of-disorientation-mobile");
setContentView(mWebView);
}
@Override
protected void onPause(){
super.onPause();
mWebView.pauseTimers();
if(isFinishing()){
mWebView.loadUrl("about:blank");
setContentView(new FrameLayout(this));
}
}
@Override
protected void onResume(){
super.onResume();
mWebView.resumeTimers();
}
}
मैं शेयर ब्राउज़र के लिए नवीनतम स्रोत पर एक नज़र ले लिया, और हालांकि मैं कोड मुझे डर है यह, कुछ इसी तरह (बुला pauseTimers/resumeTimers) कर किया जा रहा है देख रहे हैं कि पुराना है, क्योंकि यह उन कार्यों को बुला रहा है जो किसी भी प्रकार के अस्तित्व में नहीं लगते हैं ई।
मैंने सत्यापित किया कि पॉज़ टाइमर को कॉल एक साधारण जावास्क्रिप्ट सेट इंटरवल के साथ परीक्षण करके काम कर रहा है जो काउंटर अपडेट करता है। क्या कुछ और स्पष्ट है कि मुझे विंडो या व्यू प्रबंधन के संबंध में कोशिश करनी चाहिए?
मोबाइल फ़्लैश प्लेयर के लिए दस्तावेज़ का कहना है:
फ़्लैश प्लेयर भी स्वतः SWF प्लेबैक यह दृश्य या अग्रभूमि आवेदन में नहीं है रुकेगा, उदाहरण के लिए जब एक कॉल प्राप्त होता है या अलार्म के लिए बंद हो जाता है, सीपीयू उपयोग, बैटरी उपयोग और स्मृति उपयोग को कम करें।
यह स्टॉक ब्राउज़र और डॉल्फिन ब्राउज़र दोनों में पूरी तरह से काम कर रहा है, लेकिन मेरे ऐप में नहीं। किसी भी विचार/समाधान की सराहना की जाएगी!
अद्यतन: यहां वह कार्य है जिसे हम काम करने के लिए हमारी गतिविधि में जोड़ना समाप्त कर चुके हैं। हम गतिविधि के onResume समारोह में "onPause" गतिविधि के onPause समारोह में और "onResume" से कॉल करने की:
private void callHiddenWebViewMethod(String name){
if(mWebView != null){
try {
Method method = WebView.class.getMethod(name);
method.invoke(mWebView);
} catch (NoSuchMethodException e) {
Log.error("No such method: " + name, e);
} catch (IllegalAccessException e) {
Log.error("Illegal Access: " + name, e);
} catch (InvocationTargetException e) {
Log.error("Invocation Target Exception: " + name, e);
}
}
}
आप इसे कैसे कहते हैं? क्या आपके पास उपयोग का कोड स्निपेट है? –
एपीआई स्तर 11 के बाद प्रतिबिंब का उपयोग करने की आवश्यकता नहीं है। बस वेबव्यू के सार्वजनिक पर रोकें() और ऑनस्यूम() विधियों को कॉल करें। – cprcrack