Περισσότερα
Η δραστηριότητα έχει διαρρεύσει το παράθυρο που είχε αρχικά προστεθεί
Τι είναι αυτό το σφάλμα και γιατί συμβαίνει;
05-17 18:24:57.069: ERROR/WindowManager(18850): Activity com.mypkg.myP has leaked window com.android.internal.policy.impl.PhoneWindow$DecorView@44c46ff0 that was originally added here
05-17 18:24:57.069: ERROR/WindowManager(18850): android.view.WindowLeaked: Activity ccom.mypkg.myP has leaked window com.android.internal.policy.impl.PhoneWindow$DecorView@44c46ff0 that was originally added here
05-17 18:24:57.069: ERROR/WindowManager(18850): at android.view.ViewRoot.<init>(ViewRoot.java:231)
05-17 18:24:57.069: ERROR/WindowManager(18850): at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:148)
05-17 18:24:57.069: ERROR/WindowManager(18850): at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:91)
05-17 18:24:57.069: ERROR/WindowManager(18850): at android.view.Window$LocalWindowManager.addView(Window.java:424)
05-17 18:24:57.069: ERROR/WindowManager(18850): at android.app.Dialog.show(Dialog.java:239)
05-17 18:24:57.069: ERROR/WindowManager(18850): at com.mypkg.myP$PreparePairingLinkageData.onPreExecute(viewP.java:183)
05-17 18:24:57.069: ERROR/WindowManager(18850): at android.os.AsyncTask.execute(AsyncTask.java:391)
05-17 18:24:57.069: ERROR/WindowManager(18850): at com.mypkg.myP.onCreate(viewP.java:94)
05-17 18:24:57.069: ERROR/WindowManager(18850): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
05-17 18:24:57.069: ERROR/WindowManager(18850): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2544)
05-17 18:24:57.069: ERROR/WindowManager(18850): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2621)
05-17 18:24:57.069: ERROR/WindowManager(18850): at android.app.ActivityThread.access$2200(ActivityThread.java:126)
05-17 18:24:57.069: ERROR/WindowManager(18850): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1932)
05-17 18:24:57.069: ERROR/WindowManager(18850): at android.os.Handler.dispatchMessage(Handler.java:99)
05-17 18:24:57.069: ERROR/WindowManager(18850): at android.os.Looper.loop(Looper.java:123)
05-17 18:24:57.069: ERROR/WindowManager(18850): at android.app.ActivityThread.main(ActivityThread.java:4595)
05-17 18:24:57.069: ERROR/WindowManager(18850): at java.lang.reflect.Method.invokeNative(Native Method)
05-17 18:24:57.069: ERROR/WindowManager(18850): at java.lang.reflect.Method.invoke(Method.java:521)
05-17 18:24:57.069: ERROR/WindowManager(18850): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860)
05-17 18:24:57.069: ERROR/WindowManager(18850): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)
05-17 18:24:57.069: ERROR/WindowManager(18850): at dalvik.system.NativeStart.main(Native Method)
1115
3
Προσπαθείτε να εμφανίσετε ένα παράθυρο διαλόγου μετά την έξοδο από μια Δραστηριότητα.
[EDIT]
Αυτή η ερώτηση είναι μία από τις κορυφαίες αναζητήσεις στο google για προγραμματιστή android, ως εκ τούτου Προσθήκη μερικών σημαντικών σημείων από τα σχόλια, τα οποία μπορεί να είναι πιο χρήσιμα για μελλοντικό ερευνητή χωρίς να υπεισέλθει σε βάθος της συζήτησης των σχολίων.
Απάντηση 1 :
Απάντηση 2
Απάντηση 3
Η λύση είναι να καλέσετε την εντολή
dismiss()
στοDialog
που δημιουργήσατε στοviewP.java:183
πριν την έξοδο από τη δραστηριότητα, π.χ. στην εντολήonPause()
. Όλα ταWindow
s&Dialog
s θα πρέπει να κλείνουν πριν από την έξοδο από μιαActivity
.Εάν χρησιμοποιείτε το
AsyncTask
, πιθανώς αυτό το μήνυμα καταγραφής μπορεί να είναι παραπλανητικό. Αν κοιτάξετε στο ημερολόγιό σας, μπορεί να βρείτε ένα άλλο σφάλμα, πιθανότατα στη μέθοδοdoInBackground()
τηςAsyncTask
σας, που κάνει την τρέχουσαActivity
σας να εκραγεί, και έτσι μόλις ηAsyncTask
επιστρέψει... καλά, τα υπόλοιπα τα ξέρετε. Κάποιοι άλλοι χρήστες το έχουν ήδη εξηγήσει αυτό εδώ :-)