开发者社区> 问答> 正文

android 通过广播打开的dialog怎么关闭呢,在activity finish前..:报错

我有一个dialog,是通过广播的方式弹出他的,但是调用activity的finish()方法之前已经调用了关闭dialog的方法了,但是还是会报 Activity com.avcit.conference.MainActivity has leaked window android.widget.PopupWindow$PopupViewContainer@406dfc10 that was originally added here
android.view.WindowLeaked: Activity com.avcit.conference.MainActivity has leaked window android.widget.PopupWindow$PopupViewContainer@406dfc10 that was originally added here
这个异常,但是要是通过一个按钮的来finish就没有问题!?求解

展开
收起
kun坤 2020-06-14 06:32:24 1393 0
1 条回答
写回答
取消 提交回答
  • 看下这个http://bbs.hiapk.com/thread-216719-1-1.html

    原因是activity 和dialog同时显示 要先dialog.dismiss() 后activity.finish()

    ######

    这个不是在dialog里调用的finish()吧。

    建议重写dialog,接收外部intent通知后,dialog自己内部调用finish()。

     

    ######

    引用来自“北京d路飞”的答案

    这个不是在dialog里调用的finish()吧。

    建议重写dialog,接收外部intent通知后,dialog自己内部调用finish()。

     

    是在dialog中有两个按钮,点击确认关闭dialog,同时finish掉这个activity,

    ######

    引用来自“正仔”的答案

    引用来自“北京d路飞”的答案

    这个不是在dialog里调用的finish()吧。

    建议重写dialog,接收外部intent通知后,dialog自己内部调用finish()。

     

    是在dialog中有两个按钮,点击确认关闭dialog,同时finish掉这个activity,

    点击了dialog的按钮后,dialog是会正常结束的。
    你的是在dialog中finish弹出dialog的Activity吗?
    如果是这个,就应该dialog里发消息给Activity,然后Activity自己destroy了。

    ######

    引用来自“北京d路飞”的答案

    看下这个http://bbs.hiapk.com/thread-216719-1-1.html

    原因是activity 和dialog同时显示 要先dialog.dismiss() 后activity.finish()

    我在关闭activity前调用了 dialog的dismiss方法,但是是无效的,

    因为我的这个dialog是通过广播打开的,在关闭时会出现那个异常,

    但是在点击按钮调出这个dialog然后再关闭时是没有问题的!

    ######

    “因为我的这个dialog是通过广播打开的,在关闭时会出现那个异常,
    但是在点击按钮调出这个dialog然后再关闭时是没有问题的!”

    那可以在接收到广播后,sendMessage给Activity的Handler,在Activity所在的UI Thread里打开这个Dialog,这样效果应该是和点击按钮调出这个dialog一样的。

    ######哦,谢谢了######

    引用来自“北京d路飞”的答案

    “因为我的这个dialog是通过广播打开的,在关闭时会出现那个异常,
    但是在点击按钮调出这个dialog然后再关闭时是没有问题的!”

    那可以在接收到广播后,sendMessage给Activity的Handler,在Activity所在的UI Thread里打开这个Dialog,这样效果应该是和点击按钮调出这个dialog一样的。

    我用system.exit(0);这种方法来代替finaish();这样就没有那些异常了!
    ######

    先把dialog的关闭.不要直接使用view的finish()掉.

    2020-06-14 06:32:32
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
58同城Android客户端Walle框架演进与实践之路 立即下载
Android组件化实现 立即下载
蚂蚁聚宝Android秒级编译——Freeline 立即下载