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