android AlertDialog 线程问题

在某个void过程中调用send_a_msgbox();发现运行完成后并没有直接跳出一个对话框。感觉是线程相关问题,然后听说在Oncreate中调用,self只需要传Ma... 在某个void过程中调用send_a_msgbox();发现运行完成后并没有直接跳出一个对话框。
感觉是线程相关问题,然后听说在Oncreate中调用,self只需要传Mainactivity.this就可以了。但是如果是其他地方调用呢?
展开
 我来答
科特曜U
推荐于2016-08-23 · TA获得超过2334个赞
知道大有可为答主
回答量:1052
采纳率:50%
帮助的人:755万
展开全部
AlertDialog.Builder()传的参数是Context,在任何地方调用传当前Activity的实例都可以,最好是传ApplicationContext以防内存泄漏

你的Dialog显示不出来有可能是在线程内部调了显示对话框的方法,这样肯定显示不出来的,所有UI操作都应该在主线程中执行,要想子线程执行过程中显示对话框应该使用handler传递消息,在handler里去调用显示对话框的方法
更多追问追答
追问
我并没有使用thread这种东西。但是send_a_msgbox()是在一个button的OnClickListener中调用的,不知道有没有问题。

另外如果要用handler,该怎么用呢?
追答
没有用Thread就没必要用handler,在监听里写完全可以,可以简单的认为thread外部都是主线程,在主线程显示Dialog都没有问题
Handler可以用handler.post(runnable)和handler.sendmessage(message)这两个方法去通知主线程执行UI操作
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式