Activity has leaked window com.android.internal.policy.impl.PhoneWindow$DecorView@405aeb60 that was originally added here -
i know there plenty of answer topic... not able find solution problem. simple, activity:
public class dialogsactivity extends activity { bundle bundle=new bundle(); string token; @override protected void onresume() { // todo auto-generated method stub super.onresume(); mostrardialogo(); } @override protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.dialogsactivitylayout); bundle=getintent().getextras(); token=bundle.getstring("token"); token=token.replaceall("\\s+",""); log.i("parse", "token: "+token); } private void mostrardialogo() { if(token.equals("nologin")){ alertdialog.builder nologin = new alertdialog.builder(dialogsactivity.this); nologin.settitle(r.string.loginstring); nologin.setmessage(r.string.nologin); nologin.setnegativebutton(r.string.cancel, new dialoginterface.onclicklistener() { public void onclick(dialoginterface dialog, int whichbutton) { dialog.dismiss(); finish(); return; } }); nologin.show(); }else if(token.equals("nocon")){ alertdialog.builder nocon = new alertdialog.builder(dialogsactivity.this); nocon.settitle(r.string.loginstring); nocon.setmessage(r.string.timeout); nocon.setnegativebutton(r.string.cancel, new dialoginterface.onclicklistener() { public void onclick(dialoginterface dialog, int whichbutton) { dialog.dismiss(); finish(); return; } }); nocon.show(); }else if(token.equals("oklogin")){ alertdialog.builder start=new alertdialog.builder(dialogsactivity.this); start.settitle(r.string.warn); start.setmessage(r.string.service); start.setnegativebutton(r.string.accept, new dialoginterface.onclicklistener() { @override public void onclick(dialoginterface dialog, int which) { dialog.dismiss(); finish(); return; } }); //finish(); start.show(); }else if(token!="nocon" && token!="nologin" && token!="oklogin"){ alertdialog.builder error=new alertdialog.builder(dialogsactivity.this); error.settitle(r.string.unknownerror); error.setmessage(r.string.unkerrortext); error.setpositivebutton(r.string.accept, new dialoginterface.onclicklistener() { @override public void onclick(dialoginterface dialog, int which) { dialog.dismiss(); finish(); return; } }); error.show(); } } }
and when activity run, stacktrace:
05-21 11:46:25.140: e/windowmanager(15737): activity com.publidirecta.vinceriazafata.dialogsactivity has leaked window com.android.internal.policy.impl.phonewindow$decorview@405aeb60 added here 05-21 11:46:25.140: e/windowmanager(15737): android.view.windowleaked: activity com.publidirecta.vinceriazafata.dialogsactivity has leaked window com.android.internal.policy.impl.phonewindow$decorview@405aeb60 added here 05-21 11:46:25.140: e/windowmanager(15737): @ android.view.viewroot.<init>(viewroot.java:263) 05-21 11:46:25.140: e/windowmanager(15737): @ android.view.windowmanagerimpl.addview(windowmanagerimpl.java:171) 05-21 11:46:25.140: e/windowmanager(15737): @ android.view.windowmanagerimpl.addview(windowmanagerimpl.java:114) 05-21 11:46:25.140: e/windowmanager(15737): @ android.view.window$localwindowmanager.addview(window.java:424) 05-21 11:46:25.140: e/windowmanager(15737): @ android.app.dialog.show(dialog.java:241) 05-21 11:46:25.140: e/windowmanager(15737): @ android.app.alertdialog$builder.show(alertdialog.java:809) 05-21 11:46:25.140: e/windowmanager(15737): @ com.publidirecta.vinceriazafata.dialogsactivity.mostrardialogo(dialogsactivity.java:88) 05-21 11:46:25.140: e/windowmanager(15737): @ com.publidirecta.vinceriazafata.dialogsactivity.onresume(dialogsactivity.java:20) 05-21 11:46:25.140: e/windowmanager(15737): @ android.app.instrumentation.callactivityonresume(instrumentation.java:1150) 05-21 11:46:25.140: e/windowmanager(15737): @ android.app.activity.performresume(activity.java:3832) 05-21 11:46:25.140: e/windowmanager(15737): @ android.app.activitythread.performresumeactivity(activitythread.java:2114) 05-21 11:46:25.140: e/windowmanager(15737): @ android.app.activitythread.handleresumeactivity(activitythread.java:2139) 05-21 11:46:25.140: e/windowmanager(15737): @ android.app.activitythread.handlelaunchactivity(activitythread.java:1672) 05-21 11:46:25.140: e/windowmanager(15737): @ android.app.activitythread.access$1500(activitythread.java:117) 05-21 11:46:25.140: e/windowmanager(15737): @ android.app.activitythread$h.handlemessage(activitythread.java:935) 05-21 11:46:25.140: e/windowmanager(15737): @ android.os.handler.dispatchmessage(handler.java:99) 05-21 11:46:25.140: e/windowmanager(15737): @ android.os.looper.loop(looper.java:130) 05-21 11:46:25.140: e/windowmanager(15737): @ android.app.activitythread.main(activitythread.java:3687) 05-21 11:46:25.140: e/windowmanager(15737): @ java.lang.reflect.method.invokenative(native method) 05-21 11:46:25.140: e/windowmanager(15737): @ java.lang.reflect.method.invoke(method.java:507) 05-21 11:46:25.140: e/windowmanager(15737): @ com.android.internal.os.zygoteinit$methodandargscaller.run(zygoteinit.java:867) 05-21 11:46:25.140: e/windowmanager(15737): @ com.android.internal.os.zygoteinit.main(zygoteinit.java:625) 05-21 11:46:25.140: e/windowmanager(15737): @ dalvik.system.nativestart.main(native method)
the error jumps on .show() method, depending of value of token variable enters in 1 if or in another. and, can see, dialogs dismissed. help? thank you!
you should create dialog before showing it.
for example:
nocon.create().show();
instead
nocon.show();
Comments
Post a Comment