1、android的hander的确非常好用。
2、我们能不能用c++也实现一个类似功能hander这样的想法马上就被付诸实践。
3、首先介绍一个android hander的用法。
照搬别人的吧,毕竟很多这样的文章了。https://www.cnblogs.com/wlming/p/5553207.html
4、这里hander旨在解决消息的异步发送,同样拥有delay发送消息机制。
相应的应用场景:应用触发显示,交互控制命令等。
5、这个是本文章的大致结构。
6、测试代码使用方法如下:
|
#include "WKMessageQueue.h" #include "WKMessage.h" |
|
| #include "WKLooper.h" | |
| #include "WKHandler.h" | |
| #include <unistd.h> | |
| #include <utils.h> | |
| #define MODULE_NAME "WKMESAAGE_TEST" | |
| using namespace android; | |
| int main(void) | |
| { | |
| int cnt = 0; | |
| WKHandler *handler = new WKHandler(); | |
| WKLooper *looper = new WKLooper(); | |
| handler->setLooper(looper); | |
| looper->loop(); | |
| while(1) | |
| { | |
| WKMessage *msg = WKMessage::obain(cnt++, handler); | |
| handler->sendMessage(msg); | |
| if(cnt >10) | |
| break; | |
| usleep(1000000); | |
| } | |
| //休眠等待处理完 | |
| sleep(10); | |
| LOGD("now,sPoolSize:%d,sPool is %s.",WKMessage::sPoolSize,WKMessage::sPool==NULL?"null":"not null"); | |
| } |
7、运行效果如下所示:
7、代码下载地址:
https://github.com/huanhuankangwang/UDI/tree/master/hanlder