java - BadTokenException: Unable to add window -


i have issue receive badtokenexception when screen times out, , user returns application. have button opens contextmenu when clicked.

it works fine normally, when user lets screen time out, , returns application, badtokenexception thrown.

07-01 14:46:42.763: warn/windowmanager(1105): attempted add window token sub-window: android.os.binderproxy@44af17c8.  aborting.     07-01 14:46:42.771: warn/system.err(1725):     @ android.view.viewgroup.showcontextmenuforchild(viewgroup.java:459)     07-01 14:46:42.771: warn/system.err(1725):     @ android.view.viewgroup.showcontextmenuforchild(viewgroup.java:459)     07-01 14:46:42.771: warn/system.err(1725):     @ android.view.viewgroup.showcontextmenuforchild(viewgroup.java:459)     07-01 14:46:42.771: warn/system.err(1725):     @ android.view.viewgroup.showcontextmenuforchild(viewgroup.java:459)     07-01 14:46:42.771: warn/system.err(1725):     @ android.view.viewgroup.showcontextmenuforchild(viewgroup.java:459)     07-01 14:46:42.771: warn/system.err(1725):     @ android.view.view.showcontextmenu(view.java:2444)     07-01 14:46:42.771: warn/system.err(1725):     @ com.??.??.ui.cards.viewactivity$3.onclick(viewactivity.java:353)     07-01 14:46:42.771: warn/system.err(1725):     @ android.view.view.performclick(view.java:2408)     07-01 14:46:42.771: warn/system.err(1725):     @ android.view.view$performclick.run(view.java:8816)     07-01 14:46:42.771: warn/system.err(1725):     @ android.os.handler.handlecallback(handler.java:587)     07-01 14:46:42.771: warn/system.err(1725):     @ android.os.handler.dispatchmessage(handler.java:92)     07-01 14:46:42.771: warn/system.err(1725):     @ android.os.looper.loop(looper.java:123)     07-01 14:46:42.771: warn/system.err(1725):     @ android.app.activitythread.main(activitythread.java:4627)     07-01 14:46:42.771: warn/system.err(1725):     @ java.lang.reflect.method.invokenative(native method)     07-01 14:46:42.771: warn/system.err(1725):     @ java.lang.reflect.method.invoke(method.java:521)     07-01 14:46:42.771: warn/system.err(1725):     @ com.android.internal.os.zygoteinit$methodandargscaller.run(zygoteinit.java:858)     07-01 14:46:42.771: warn/system.err(1725):     @ com.android.internal.os.zygoteinit.main(zygoteinit.java:616)     07-01 14:46:42.771: warn/system.err(1725):     @ dalvik.system.nativestart.main(native method)     07-01 14:46:43.005: warn/system.err(1725): android.view.windowmanager$badtokenexception: unable add window -- token android.view.viewroot$w@44757528 not valid; activity running?     07-01 14:46:43.005: warn/system.err(1725):     @ android.view.viewroot.setview(viewroot.java:505)     07-01 14:46:43.005: warn/system.err(1725):     @ android.view.windowmanagerimpl.addview(windowmanagerimpl.java:177)     07-01 14:46:43.005: warn/system.err(1725):     @ android.view.windowmanagerimpl.addview(windowmanagerimpl.java:91)     07-01 14:46:43.005: warn/system.err(1725):     @ android.view.window$localwindowmanager.addview(window.java:424)     07-01 14:46:43.005: warn/system.err(1725):     @ android.app.dialog.show(dialog.java:241)     07-01 14:46:43.005: warn/system.err(1725):     @ com.android.internal.view.menu.menudialoghelper.show(menudialoghelper.java:86)     07-01 14:46:43.005: warn/system.err(1725):     @ com.android.internal.view.menu.contextmenubuilder.show(contextmenubuilder.java:88)     07-01 14:46:43.005: warn/system.err(1725):     @ com.android.internal.policy.impl.phonewindow$decorview.showcontextmenuforchild(phonewindow.java:1860)     07-01 14:46:43.005: warn/system.err(1725):     @ android.view.viewgroup.showcontextmenuforchild(viewgroup.java:459)     07-01 14:46:43.005: warn/system.err(1725):     @ android.view.viewgroup.showcontextmenuforchild(viewgroup.java:459)     07-01 14:46:43.005: warn/system.err(1725):     @ android.view.viewgroup.showcontextmenuforchild(viewgroup.java:459)     07-01 14:46:43.005: warn/system.err(1725):     @ android.view.viewgroup.showcontextmenuforchild(viewgroup.java:459)     07-01 14:46:43.005: warn/system.err(1725):     @ android.view.viewgroup.showcontextmenuforchild(viewgroup.java:459)     07-01 14:46:43.005: warn/system.err(1725):     @ android.view.viewgroup.showcontextmenuforchild(viewgroup.java:459) 

if catch exception, button never opens contextmenu in case, other controls on page continue work.

if minimize application home screen, , return, application crashes following trace:

07-01 15:10:50.439: error/androidruntime(1931): fatal exception: main 07-01 15:10:50.439: error/androidruntime(1931): java.lang.nullpointerexception 07-01 15:10:50.439: error/androidruntime(1931):     @ android.view.windowmanagerimpl.removeviewlocked(windowmanagerimpl.java:239) 07-01 15:10:50.439: error/androidruntime(1931):     @ android.view.windowmanagerimpl.closeall(windowmanagerimpl.java:293) 07-01 15:10:50.439: error/androidruntime(1931):     @ android.app.activitythread.handledestroyactivity(activitythread.java:3687) 07-01 15:10:50.439: error/androidruntime(1931):     @ android.app.activitythread.access$2900(activitythread.java:125) 07-01 15:10:50.439: error/androidruntime(1931):     @ android.app.activitythread$h.handlemessage(activitythread.java:2066) 07-01 15:10:50.439: error/androidruntime(1931):     @ android.os.handler.dispatchmessage(handler.java:99) 07-01 15:10:50.439: error/androidruntime(1931):     @ android.os.looper.loop(looper.java:123) 07-01 15:10:50.439: error/androidruntime(1931):     @ android.app.activitythread.main(activitythread.java:4627) 07-01 15:10:50.439: error/androidruntime(1931):     @ java.lang.reflect.method.invokenative(native method) 07-01 15:10:50.439: error/androidruntime(1931):     @ java.lang.reflect.method.invoke(method.java:521) 07-01 15:10:50.439: error/androidruntime(1931):     @ com.android.internal.os.zygoteinit$methodandargscaller.run(zygoteinit.java:858) 07-01 15:10:50.439: error/androidruntime(1931):     @ com.android.internal.os.zygoteinit.main(zygoteinit.java:616) 07-01 15:10:50.439: error/androidruntime(1931):     @ dalvik.system.nativestart.main(native method) 

here's how i'm adding contextmenu:

b.setonclicklistener( new onclicklistener() {             @override             public void onclick( view view ) {                 if (contextmenuopen) return;// popup options                 contextmenuopen = view.showcontextmenu();              } 

i not call registerforcontextmenu button, rather main view itself. incorrect?

you holding on reference context (either explicitly, or creating dialog or toast or other dependent item) has been destroyed (typically because using oncreatedialog or passed activity other process didn't destroyed when activity destroyed).


Comments

Popular posts from this blog

c# - SharpSVN - How to get the previous revision? -

c++ - Is it possible to compile a VST on linux? -

url - Querystring manipulation of email Address in PHP -