दिलचस्प पोस्ट
जावा का उपयोग करके लाइन से एक बड़ी टेक्स्ट फ़ाइल लाइन कैसे पढ़ी जा सकती है? क्या पैरामीटर प्रकार और लैम्ब्डा का वापसी प्रकार पता लगाना संभव है? यूआरएल को एक एचटीएल पृष्ठ से एसएडी या एजेक के उपयोग से निकालने का सबसे आसान तरीका क्या php 'शामिल' एक समारोह या एक बयान है? C ++ कोड C ++ 03 और C ++ 11 दोनों में मान्य हो सकता है लेकिन क्या अलग चीजें हैं? सी में शब्दकोश को लागू करने का त्वरित तरीका डायनामिक प्रॉपर्टी नामों वाला एक ऑब्जेक्ट बनाएं एक फ़ोल्डर से SQL सर्वर पर एकाधिक सीएसवी फ़ाइलें आयात करें गैर रिकर्सिव गहराई पहले खोज एल्गोरिथ्म ViewModel को ईवेंट को पास करने का सबसे अच्छा तरीका क्या है? गैर पुनर्जीवित विंडो सीमा और स्थिति XML फ़ाइल में दिनांक / समय के लिए उपयोग करने के लिए सही प्रारूप क्या है सेलेनियम वेबड्राइवर जावा का उपयोग करके खींचें और ड्रॉप कार्यक्षमता को स्वचालित कैसे करें सी # के लिए क्या स्थिर विश्लेषण उपकरण उपलब्ध हैं? Python में -0400 टाइमज़ोन स्ट्रिंग के साथ दिनांक कैसे विश्लेषित करें?

त्रुटि: BinderProxy @ 45d459c0 मान्य नहीं है; क्या आपकी गतिविधि चल रही है?

यह त्रुटि क्या है … मैंने स्टैक ओवरफ्लू समुदाय में इस त्रुटि पर कोई चर्चा नहीं पाई है विस्तृत: –

10-18 23:53:11.613: ERROR/AndroidRuntime(3197): Uncaught handler: thread main exiting due to uncaught exception 10-18 23:53:11.658: ERROR/AndroidRuntime(3197): android.view.WindowManager$BadTokenException: Unable to add window -- token android.os.BinderProxy@45d459c0 is not valid; is your activity running? 10-18 23:53:11.658: ERROR/AndroidRuntime(3197): at android.view.ViewRoot.setView(ViewRoot.java:468) 10-18 23:53:11.658: ERROR/AndroidRuntime(3197): at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:177) 10-18 23:53:11.658: ERROR/AndroidRuntime(3197): at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:91) 10-18 23:53:11.658: ERROR/AndroidRuntime(3197): at android.view.Window$LocalWindowManager.addView(Window.java:424) 10-18 23:53:11.658: ERROR/AndroidRuntime(3197): at android.app.Dialog.show(Dialog.java:239) 10-18 23:53:11.658: ERROR/AndroidRuntime(3197): at com.vishal.contacte.Locationlistener$MyLocationListener.onLocationChanged(Locationlistener.java:86) 10-18 23:53:11.658: ERROR/AndroidRuntime(3197): at android.location.LocationManager$ListenerTransport._handleMessage(LocationManager.java:179) 10-18 23:53:11.658: ERROR/AndroidRuntime(3197): at android.location.LocationManager$ListenerTransport.access$000(LocationManager.java:112) 10-18 23:53:11.658: ERROR/AndroidRuntime(3197): at android.location.LocationManager$ListenerTransport$1.handleMessage(LocationManager.java:128) 10-18 23:53:11.658: ERROR/AndroidRuntime(3197): at android.os.Handler.dispatchMessage(Handler.java:99) 10-18 23:53:11.658: ERROR/AndroidRuntime(3197): at android.os.Looper.loop(Looper.java:123) 10-18 23:53:11.658: ERROR/AndroidRuntime(3197): at android.app.ActivityThread.main(ActivityThread.java:4363) 10-18 23:53:11.658: ERROR/AndroidRuntime(3197): at java.lang.reflect.Method.invokeNative(Native Method) 10-18 23:53:11.658: ERROR/AndroidRuntime(3197): at java.lang.reflect.Method.invoke(Method.java:521) 10-18 23:53:11.658: ERROR/AndroidRuntime(3197): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:862) 10-18 23:53:11.658: ERROR/AndroidRuntime(3197): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:620) 10-18 23:53:11.658: ERROR/AndroidRuntime(3197): at dalvik.system.NativeStart.main(Native Method) 

वेब के समाधान से एकत्रित समाधान "त्रुटि: BinderProxy @ 45d459c0 मान्य नहीं है; क्या आपकी गतिविधि चल रही है?"

यह सबसे अधिक संभावना है क्योंकि आप पृष्ठभूमि थ्रेड के निष्पादन के बाद एक संवाद दिखाने की कोशिश कर रहे हैं, जबकि गतिविधि नष्ट हो रही है।

मुझे अपने ऐप के कुछ समय से एक बार में इस त्रुटि की सूचना मिली थी जब संवाद को कॉल करने वाली गतिविधि कुछ कारण या किसी अन्य के लिए खत्म हो रही थी, जब उसने एक संवाद दिखाने का प्रयास किया था यह मेरे लिए क्या हल किया गया है:

 if(!((Activity) context).isFinishing()) { //show dialog } 

मैं इसका उपयोग कई वर्षों के लिए एंड्रॉइड के पुराने संस्करणों पर काम करने के लिए कर रहा हूं, और अब से दुर्घटना नहीं देखी है।

इस लिंक की जांच करें:
एंड्रॉइड – पृष्ठभूमि धागे से संवाद प्रदर्शित करना http://dimitar.me/android-displaying-dialogs-from-background-threads/

मुझे एक ही समस्या का सामना करना पड़ा था और उपरोक्त डिस्कडिव द्वारा सुझाए गए कोड को निम्न प्रकार के परिवर्तनों के साथ प्रयोग किया गया था:

 if (!MainActivity.this.isFinishing()){ alertDialog.show(); } 

मेरे ऐप में जब मुझे countDownTimer मिला था तो मुझे इस त्रुटि का सामना करना पड़ा। यह मेरे ऐप में गेमऑन के रूप में कॉल करने वाला एक तरीका था

 public void onFinish() { GameOver(); } 

लेकिन वास्तव में यह गेम उपयोगकर्ता के गलत क्लिक की वजह से खत्म हो चुका था (यह एक क्लिकिंग गेम था)। इसलिए जब मैं गेम ओवर countDownTimer को देख रहा था जैसे 20 सेकंड, मैं countDownTimer को रद्द करना भूल गया था इसलिए एक बार जब समय समाप्त हो गया था, तब संवाद फिर से दिखाई दिया। या किसी कारण से उपरोक्त त्रुटि के साथ दुर्घटनाग्रस्त हो गया

यह तय करना बहुत आसान है। बस जांचें कि गतिविधि डायलॉग प्रदर्शित करने से पहले अपने अंतिम चरण से गुजर रही है:

  private Handler myHandler = new Handler() { @Override public void handleMessage(Message msg) { switch (msg.what) { case DISPLAY_DLG: if (!isFinishing()) { showDialog(MY_DIALOG); } break; } } }; 

यहां अधिक देखें

मेरे मामले में समस्या यह थी कि Context में हालत में विस्तारित वर्ग में एक कमजोर संदर्भ के रूप में रखा गया था। तब मैं Messenger पास कर रहा था, जो एक Service से Intent माध्यम से हेन्डलर को लपेटता है। मैं हर बार जब onResume() पद्धति में स्क्रीन पर दिखाई देता था, तो ऐसा कर रहा था।

इसलिए जैसा कि आप समझते हैं, मैसेंजर को अपने खेतों (संदर्भ सहित) के साथ क्रमबद्ध किया गया था, क्योंकि इन्हें Intent का उपयोग करने वाली वस्तुओं को पास करने का एकमात्र तरीका है – उन्हें क्रमबद्ध करने के लिए। और उस समय जब दूत सेवा के लिए पारित किया गया था, गतिविधि स्वयं अभी भी संवाद दिखाने के लिए तैयार नहीं थी क्योंकि यह किसी अन्य राज्य में है (रिज़्यूम पर कहा गया है, जो कि स्क्रीन पर गतिविधि पहले से ही अलग है)। इसलिए जब दूत deserialized था, संदर्भ अभी भी शुरू राज्य में था, जबकि गतिविधि वास्तव में स्क्रीन पर पहले से ही था। इसके अलावा deserialization नए ऑब्जेक्ट के लिए स्मृति को आवंटित करता है, जो मूल एक से पूरी तरह से अलग है।

इसलिए, समाधान हर बार जब आपको इसकी आवश्यकता होती है तो सेवा के साथ जुड़ना होता है और 'सेट मेसेंजर (मैसेंजर दूत)' जैसी एक विधि होती है और इसे कॉल करते हैं, जब आप सेवा से जुड़े होते हैं