Android NDK ALooper_pollOnce()与ALooper_pollAll()的比较

Android NDK ALooper_pollOnce()与ALooper_pollAll()的比较,android,android-ndk,event-handling,Android,Android Ndk,Event Handling,在Android NDK中,ALooper\u pollOnce()和ALooper\u pollAll()之间的区别是什么?这些简单的函数指定了从Looper的事件队列处理的回调次数(最大值)。顾名思义,pollAll()执行事件队列中的所有回调,直到遇到数据事件、错误或超时。另一方面,pollOnce()在执行第一次回调时立即返回一个操作轮询回调 基本上,它们之间的关系可以用以下伪代码表示: int ALooper_pollAll(int timeoutMillis, int* outFd,

在Android NDK中,
ALooper\u pollOnce()
ALooper\u pollAll()
之间的区别是什么?

这些简单的函数指定了从Looper的事件队列处理的回调次数(最大值)。顾名思义,
pollAll()
执行事件队列中的所有回调,直到遇到数据事件、错误或超时。另一方面,
pollOnce()
在执行第一次回调时立即返回一个操作轮询回调

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

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;
}