使用AlertDialog.Builder点击确定需要进行一个网络操作,结果报错

liompei
  • 228

使用AlertDialog.Builder点击确定需要进行一个网络操作,结果报错

StartActivity has leaked window com.android.internal.policy.PhoneWindow$DecorView{4288226 V.E...... R.....I. 0,0-1026,476} that was originally added here
                                                                        at android.view.ViewRootImpl.<init>(ViewRootImpl.java:368)
                                                                        at android.view.WindowManagerGlobal.addView(WindowManagerGlobal.java:299)
                                                                        at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:85)
                                                                        
                                                                        上网查了,要把alert给dismiss,根本不行,AlertDialog.Builder本身没有dismiss方法,并且点击效果本身就是取消了窗口的显示,,,,这个要怎么做?
回复
阅读 2.9k
7 个回答

AlertDialog.Builder 这个类是根据配置来生成AlertDialog的。
AlertDialog才可以显示,才有dimiss方法。
Builder生成结果是Builder,如果不调用create或者show方法的话是没有AlertDialog生成的。

建议贴一下代码,这样说不好懂!

同上,描述有点模糊,不清楚你想说什么

窗体泄漏,应该是dialog依然持有Activity的Context,你直接关闭了Activity。贴一下具体代码吧

builder 只是构造类的参数而已。
调用builder的build()才会真的构造类的实例。
在你的案例下要声明一个Dialog来接收,才有机会调用到dismiss()方法。

你先得build.create()才是一个alertdialog,然后你才能使用alertdialog.show()和alertdialog.dismiss()

你传入的context 是activity的context,还是application的context 如果是application的context 就会抱类似的错误。需要给dialog一个依附的窗口才能显示

宣传栏