android的dialog方法执行顺序很奇怪,求教!
答案:4 悬赏:0
解决时间 2021-02-08 15:24
- 提问者网友:晨熙污妖王
- 2021-02-07 14:26
android的dialog方法执行顺序很奇怪,求教!
最佳答案
- 二级知识专家网友:茫然不知崩溃
- 2021-02-07 15:57
个人理解:
dialog的dismiss方法进入,需要刷新UI线程的时候,UI主线程被你sleep了,对dialog的界面处理就变成5秒后主线程恢复之后,所以界面上看起来顺序就比较奇怪了。
建议处理方式:
重要事情说三遍:千万不要在主线程sleep!千万不要在主线程sleep!千万不要在主线程sleep!
对于这个需求,可以采取单独开个计时线程,然后handler或者broadcast/intent收消息的办法来实现。
dialog的dismiss方法进入,需要刷新UI线程的时候,UI主线程被你sleep了,对dialog的界面处理就变成5秒后主线程恢复之后,所以界面上看起来顺序就比较奇怪了。
建议处理方式:
重要事情说三遍:千万不要在主线程sleep!千万不要在主线程sleep!千万不要在主线程sleep!
对于这个需求,可以采取单独开个计时线程,然后handler或者broadcast/intent收消息的办法来实现。
全部回答
- 1楼网友:甜野猫
- 2021-02-07 18:43
AlertDialog不会阻塞线程的
DialogInterface.OnCancelListener 试试在里面操作
- 2楼网友:請叫我丶偏執狂
- 2021-02-07 18:19
dismiss 并不会直接关掉窗口,而是向线程发送消息,这个消息是按顺序排列的。
这时候 sleep,还是当前执行过程,sleep 之后,新的消息才会被执行到。dismiss
- 3楼网友:深街酒徒
- 2021-02-07 16:48
这种方法可以实现你想要的效果,先dismiss掉dialog,5s后显示Toast。
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯