Android GDR ALooper_pollOnce() 对比 ALooper_pollAll()

Android NDK ALooper_pollOnce() vs ALooper_pollAll()

AndroidNDK中,ALooper_pollOnce()ALooper_pollAll()有什么区别?

这些简单的指定从 Looper 的事件队列中处理多少(最大)回调。顾名思义,pollAll() 执行事件队列中的所有回调,直到遇到数据事件、错误或超时。另一方面,一旦执行第一个回调,pollOnce() returns ALOOPER_POLL_CALLBACK。

基本上,它们的关系可以用下面的伪代码表示:

int ALooper_pollAll(int timeoutMillis, int* outFd, int* outEvents, void** outData) {
  int result;
  do {
    result = ALooper_pollOnce(timeoutMillis, outFd, outEvents, outData);
  } while (result == ALOOPER_POLL_CALLBACK);
  return result;
}