gpt4 book ai didi

android - Alooper_addFd数据参数

转载 作者:行者123 更新时间:2023-11-30 02:19:03 31 4
gpt4 key购买 nike

我不确定这个函数是如何工作的。这是原型(prototype):

int ALooper_addFd(ALooper*looper, int fd, int ident, int events, ALooper_callbackFunc callback, void *data);

这个“数据”指针是什么?如果回调不为 NULL,“数据”应该是传递给回调的自定义数据。但是,如果回调为 NULL,“数据”参数用于什么?或者在那种情况下它也必须为 NULL?

有这方面的详细文档吗?谢谢指教!

最佳答案

它是一个指向任意数据的指针,您可以在应用程序中根据需要设置它。

除了作为回调的参数发送外,data 指针还将在您调用 ALooper_pollAll 时写入由 outData 参数引用的内存ALooper_pollOnce

您可以以 Android Native App Glue 为例。在这种情况下,data 指向由胶水定义的 android_poll_source 结构,并使胶水将来自循环程序文件描述符的命令转换为输入和 APP_CMD 事件,当你从looper接收到一个事件时,你必须调用(android_poll_source *)data中的process函数:

int ident, events;
struct android_poll_source *source; // source is the data here
while ((ident = ALooper_pollAll(0, NULL, &events, (void **)(&source))) >= 0) {
if (source) {
source->process(source->app, source);
}
}

关于android - Alooper_addFd数据参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28875119/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com