我不确定这个功能是如何工作的。这是原型:
int ALooper_addFd(ALooper*looper, int fd, int ident, int events, ALooper_callbackFunc callback, void *data);
这个'数据'指针是什么?如果回调不是NULL,则'data'应该是传递给回调的自定义数据。但是,如果回调为NULL,那么'data'参数用于什么?或者它也必须是NULL,在这种情况下?
有关于此的详细文档吗?谢谢你的建议!
答案 0 :(得分:1)
它是指向您可以在应用程序中需要的任意数据的指针。
除了作为参数发送回调,当您调用data
或{{1}时,outData
指针也将写入ALooper_pollAll
参数引用的内存中}。
您可以看到Android Native App Glue作为示例。在这种情况下,ALooper_pollOnce
指向由胶水定义的data
结构,并使胶水将来自looper的文件描述符的命令转换为输入和android_poll_source
事件,当你从looper收到一个事件时,你必须在APP_CMD
中调用process
函数:
(android_poll_source *)data