Alooper_addFd数据参数

时间:2015-03-05 10:07:40

标签: android native-code android-looper

我不确定这个功能是如何工作的。这是原型:

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

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

有关于此的详细文档吗?谢谢你的建议!

1 个答案:

答案 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