搜索

首页  >  问答  >  正文

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

使用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方法,并且点击效果本身就是取消了窗口的显示,,,,这个要怎么做?
大家讲道理大家讲道理2785 天前814

全部回复(7)我来回复

  • 阿神

    阿神2017-04-18 09:23:45

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

    回复
    0
  • 伊谢尔伦

    伊谢尔伦2017-04-18 09:23:45

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

    回复
    0
  • 巴扎黑

    巴扎黑2017-04-18 09:23:45

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

    回复
    0
  • 高洛峰

    高洛峰2017-04-18 09:23:45

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

    回复
    0
  • ringa_lee

    ringa_lee2017-04-18 09:23:45

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

    回复
    0
  • 怪我咯

    怪我咯2017-04-18 09:23:45

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

    回复
    0
  • 黄舟

    黄舟2017-04-18 09:23:45

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

    回复
    0
  • 取消回复