knrt.net
当前位置:首页 >> 如何终止AnDroiD HAnDlEr 中的消息处理 >>

如何终止AnDroiD HAnDlEr 中的消息处理

为什么要终止,你处理的消息会很久?把它当一个线程来看 不过handler是主线程,程序在里面出不来,界面会动不了的

首先你应该把ImageLoad方法放到线程中去执行,因为这个应该是个耗时操作,放到UI线程中,程序会假死,通过handler去启动这个线程来执行这个方法,如果取消的话,在发给handler一个消息,让handler再去停止这个线程。

在Android中,activity做为主线程,如其他线程需要与其交互,要在message队列中进行处理。至于Handler、Message、MessageQueue、looper在网上都有很多详细说明,讲的也就是将消息或线程通过handler放入消息队列,looper用于消息队列中就行消息间...

你可以制造一个异常,直接终止,或者发送一个空消息,这样他什么都不会,也就是结束了 不过,我自己的理解是发送一次消息,执行结束之后,就自动结束了

如果是通过handler sendMessage的话是无法中断的,因为handler立马就处理了 如果你是通过handler.postRunnale的话,可以通过 handler.removeCallbacks 来取消

你的判断语句有问题,相当于移除了消息又添加了消息,加一个else应该就能解决。 if (progress >= stop) { mHandler.removeMessages(MSG_PROGRESS_UPDATE);}else{ mHandler.sendEmptyMessageDelayed(MSG_PROGRESS_UPDATE, 30);}

Message message=Message.obtain();没必要每次都new一个新的。

熟悉Windows编程的朋友可能知道Windows程序是消息驱动的,并且有全局的消息循环系统。而Android应用程序也是消息驱动的,按道 理来说也应该提供消息循环机制。实际上谷歌参考了Windows的消息循环机制,也在Android系统中实现了消息循环机制。And...

在一个Android 程序开始运行的时候,会单独启动一个Process。默认的情况下,所有这个程序中的Activity,Service,Content Provider,Broadcast Receiver(Android 4大组件)都会跑在这个Process。一个Android 程序默认情况下也只有一个Process,...

handler.removeMessages(what); 这条语句就可以了

网站首页 | 网站地图
All rights reserved Powered by www.knrt.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com