2013-09-28 1 views
1

J'exécute 4 tâches d'arrière-plan dans une activité. Mais je recevais une erreur dans une activité au pDialog.show(). Je suis incapable de comprendre le. Pour certaines activités j'ai eu le même problème mais j'ai enlevé la boîte de dialogue de progression car celles-ci sont de priorité moyenne mais celle-ci nécessite une priorité élevée. Voici mon erreur. Quelqu'un peut-il me dire comment résoudre cette erreur.Obtention d'une erreur sur Dialog.show

09-28 19:44:53.575: I/Choreographer(1120): Skipped 86 frames! The application may be doing too much work on its main thread. 
09-28 19:44:54.374: E/WindowManager(1120): Activity com.example.newairways.Gscan has leaked window com.android.internal.policy.impl.PhoneWindow$DecorView{40d40860 V.E..... R.....ID 0,0-684,192} that was originally added here 
09-28 19:44:54.374: E/WindowManager(1120): android.view.WindowLeaked: Activity com.example.newairways.Gscan has leaked window com.android.internal.policy.impl.PhoneWindow$DecorView{40d40860 V.E..... R.....ID 0,0-684,192} that was originally added here 
09-28 19:44:54.374: E/WindowManager(1120): at android.view.ViewRootImpl.<init>(ViewRootImpl.java:354) 
09-28 19:44:54.374: E/WindowManager(1120): at android.view.WindowManagerGlobal.addView(WindowManagerGlobal.java:216) 
09-28 19:44:54.374: E/WindowManager(1120): at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:69) 
09-28 19:44:54.374: E/WindowManager(1120): at android.app.Dialog.show(Dialog.java:281) 
09-28 19:44:54.374: E/WindowManager(1120): at com.example.newairways.Gscan$insert.onPreExecute(Gscan.java:304) 
09-28 19:44:54.374: E/WindowManager(1120): at android.os.AsyncTask.executeOnExecutor(AsyncTask.java:586) 
09-28 19:44:54.374: E/WindowManager(1120): at android.os.AsyncTask.execute(AsyncTask.java:534) 
09-28 19:44:54.374: E/WindowManager(1120): at com.example.newairways.Gscan$1.onClick(Gscan.java:201) 
09-28 19:44:54.374: E/WindowManager(1120): at android.view.View.performClick(View.java:4204) 
09-28 19:44:54.374: E/WindowManager(1120): at android.view.View$PerformClick.run(View.java:17355) 
09-28 19:44:54.374: E/WindowManager(1120): at android.os.Handler.handleCallback(Handler.java:725) 
09-28 19:44:54.374: E/WindowManager(1120): at android.os.Handler.dispatchMessage(Handler.java:92) 
09-28 19:44:54.374: E/WindowManager(1120): at android.os.Looper.loop(Looper.java:137) 
09-28 19:44:54.374: E/WindowManager(1120): at android.app.ActivityThread.main(ActivityThread.java:5041) 
09-28 19:44:54.374: E/WindowManager(1120): at java.lang.reflect.Method.invokeNative(Native Method) 
09-28 19:44:54.374: E/WindowManager(1120): at java.lang.reflect.Method.invoke(Method.java:511) 
09-28 19:44:54.374: E/WindowManager(1120): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793) 
09-28 19:44:54.374: E/WindowManager(1120): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560) 
09-28 19:44:54.374: E/WindowManager(1120): at dalvik.system.NativeStart.main(Native Method) 
09-28 19:44:57.234: E/Trace(1146): error opening trace file: No such file or directory (2) 

Répondre

1

Utilisez un Handler pour montrer de dialogue si vous utilisez AsyncTask ou Thread dans votre programme. Et si le problème persiste, veuillez envoyer votre code pour obtenir de l'aide supplémentaire.

+0

J'ai résolu mon problème. – user2787300

0

Toutes les boîtes de dialogue de progression doivent être fermées avant de quitter une activité. Vous avez probablement oublié de fermer votre progrèsDialog.

Fermer dans votre méthode onPostExecute()

pDialog.dismiss(); 

Vérifiez ce SO link pour plus clarifation en cas d'erreur windowleaked.

+0

Ya je l'ai fermé sur la méthode postExecute() – user2787300

Questions connexes