friends,
oncreate() loading data webservice using async thread. when thread started shows progress bar on screen , loads data.
a sudden problem have faced when start activity progress bar shown change orientation of phone second thread starts &
application crashes.(inovation target exception that).
here log cat 1 guide me solution problem?
code simple
@override public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.searchbanks); threadbank = new asyncbanks(); threadbank.execute("",""); } 04-29 16:08:26.811: error/windowmanager(430): activity com.findme.searchbanks has leaked window com.android.internal.policy.impl.phonewindow$decorview@44f64f98 added here 04-29 16:08:26.811: error/windowmanager(430): android.view.windowleaked: activity com.findme.searchbanks has leaked window com.android.internal.policy.impl.phonewindow$decorview@44f64f98 added here 04-29 16:08:26.811: error/windowmanager(430): @ android.view.viewroot.<init>(viewroot.java:247) 04-29 16:08:26.811: error/windowmanager(430): @ android.view.windowmanagerimpl.addview(windowmanagerimpl.java:148) 04-29 16:08:26.811: error/windowmanager(430): @ android.view.windowmanagerimpl.addview(windowmanagerimpl.java:91) 04-29 16:08:26.811: error/windowmanager(430): @ android.view.window$localwindowmanager.addview(window.java:424) 04-29 16:08:26.811: error/windowmanager(430): @ android.app.dialog.show(dialog.java:241) 04-29 16:08:26.811: error/windowmanager(430): @ com.findme.searchbanks$asyncbanks.onpreexecute(searchbanks.java:133) 04-29 16:08:26.811: error/windowmanager(430): @ android.os.asynctask.execute(asynctask.java:391) 04-29 16:08:26.811: error/windowmanager(430): @ com.findme.searchbanks.loadrecords(searchbanks.java:115) 04-29 16:08:26.811: error/windowmanager(430): @ com.findme.searchbanks.oncreate(searchbanks.java:76) 04-29 16:08:26.811: error/windowmanager(430): @ android.app.instrumentation.callactivityoncreate(instrumentation.java:1047) 04-29 16:08:26.811: error/windowmanager(430): @ android.app.activitythread.performlaunchactivity(activitythread.java:2627) 04-29 16:08:26.811: error/windowmanager(430): @ android.app.activitythread.handlelaunchactivity(activitythread.java:2679) 04-29 16:08:26.811: error/windowmanager(430): @ android.app.activitythread.access$2300(activitythread.java:125) 04-29 16:08:26.811: error/windowmanager(430): @ android.app.activitythread$h.handlemessage(activitythread.java:2033) 04-29 16:08:26.811: error/windowmanager(430): @ android.os.handler.dispatchmessage(handler.java:99) 04-29 16:08:26.811: error/windowmanager(430): @ android.os.looper.loop(looper.java:123) 04-29 16:08:26.811: error/windowmanager(430): @ android.app.activitythread.main(activitythread.java:4627) 04-29 16:08:26.811: error/windowmanager(430): @ java.lang.reflect.method.invokenative(native method) 04-29 16:08:26.811: error/windowmanager(430): @ java.lang.reflect.method.invoke(method.java:521) 04-29 16:08:26.811: error/windowmanager(430): @ com.android.internal.os.zygoteinit$methodandargscaller.run(zygoteinit.java:868) 04-29 16:08:26.811: error/windowmanager(430): @ com.android.internal.os.zygoteinit.main(zygoteinit.java:626) 04-29 16:08:26.811: error/windowmanager(430): @ dalvik.system.nativestart.main(native method) 04-29 16:08:28.652: error/androidruntime(430): java.lang.illegalargumentexception: view not attached window manager 04-29 16:08:28.652: error/androidruntime(430): @ android.view.windowmanagerimpl.findviewlocked(windowmanagerimpl.java:355) 04-29 16:08:28.652: error/androidruntime(430): @ android.view.windowmanagerimpl.removeview(windowmanagerimpl.java:200) 04-29 16:08:28.652: error/androidruntime(430): @ android.view.window$localwindowmanager.removeview(window.java:432) 04-29 16:08:28.652: error/androidruntime(430): @ android.app.dialog.dismissdialog(dialog.java:278) 04-29 16:08:28.652: error/androidruntime(430): @ android.app.dialog.access$000(dialog.java:71) 04-29 16:08:28.652: error/androidruntime(430): @ android.app.dialog$1.run(dialog.java:111) 04-29 16:08:28.652: error/androidruntime(430): @ android.app.dialog.dismiss(dialog.java:268) 04-29 16:08:28.652: error/androidruntime(430): @ com.findme.searchbanks$asyncbanks.onpostexecute(searchbanks.java:197) 04-29 16:08:28.652: error/androidruntime(430): @ com.findme.searchbanks$asyncbanks.onpostexecute(searchbanks.java:1) 04-29 16:08:28.652: error/androidruntime(430): @ android.os.asynctask.finish(asynctask.java:417) 04-29 16:08:28.652: error/androidruntime(430): @ android.os.asynctask.access$300(asynctask.java:127) 04-29 16:08:28.652: error/androidruntime(430): @ android.os.asynctask$internalhandler.handlemessage(asynctask.java:429) 04-29 16:08:28.652: error/androidruntime(430): @ android.os.handler.dispatchmessage(handler.java:99) 04-29 16:08:28.652: error/androidruntime(430): @ android.os.looper.loop(looper.java:123) 04-29 16:08:28.652: error/androidruntime(430): @ android.app.activitythread.main(activitythread.java:4627) 04-29 16:08:28.652: error/androidruntime(430): @ java.lang.reflect.method.invokenative(native method) 04-29 16:08:28.652: error/androidruntime(430): @ java.lang.reflect.method.invoke(method.java:521) 04-29 16:08:28.652: error/androidruntime(430): @ com.android.internal.os.zygoteinit$methodandargscaller.run(zygoteinit.java:868) 04-29 16:08:28.652: error/androidruntime(430): @ com.android.internal.os.zygoteinit.main(zygoteinit.java:626) 04-29 16:08:28.652: error/androidruntime(430): @ dalvik.system.nativestart.main(native method)
even if dismiss dialog can recreate it, there seems race condition between system destroying dialog , lifecycle methods dismiss it. crash report dismissing non-existent dialog @ configuration change time.
i suggest catching , ignoring exception in dialog.dismiss() handle race condition. that's i've done , it's cleared problem.
steve @ whitneyapps
Comments
Post a Comment