Kas ir šī kļūda un kāpēc tā rodas?
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)
Jūs mēģināt parādīt Dialogs pēc tam, kad esat izgājis no darbības.
[EDIT]
Šis jautājums ir viens no top meklēšanas google android izstrādātājs, tāpēc Pievienoju dažus svarīgus punktus no komentāriem, kas varētu būt noderīgāki nākamajam pētniekam, neiedziļinoties komentāru sarunā.
Atbilde 1 :
Jūs mēģināt parādīt dialogu pēc tam, kad esat izgājis no darbības.
Atbilde 2
Šī kļūda dažos gadījumos var būt nedaudz maldinoša (lai gan atbilde joprojām ir pilnīgi precīza) - t.i., manā gadījumā tika izmesta neapkalpotā izņēmuma gadījums uzdevumā AsyncTask, kas izraisīja kļūdu aktivitāte tika izslēgta, tad atvērts progresa dialogs izraisīja šo Izņēmums.. tāpēc 'īstais' izņēmums bija nedaudz agrāk žurnālā.
Atbilde 3
Izsauciet dismiss() Dialog instancei, ko izveidojāt pirms izejas no jūsu darbību, piemēram, onPause() vai onDestroy().
Risinājums ir izsaukt dismiss()
uz Dialog
, kas izveidots viewP.java:183
, pirms iziet no Activity
, piemēram, onPause()
. Pirms darbības pārtraukšanas visi Window
s&Dialog
ir jāslēdz.
Ja izmantojat AsyncTask
, iespējams, ka šis loga ziņojums var būt maldinošs. Ja jūs ieskatīsieties žurnālā, iespējams, atradīsiet citu kļūdu, iespējams, kļūdu AsyncTask
doInBackground()
metodē, kuras dēļ jūsu pašreizējā Activity
uzsprāgst, un tādējādi, kad AsyncTask
atgriežas... nu, pārējo jūs zināt. Daži citi lietotāji to jau paskaidroja šeit :-)