isPolling 方法会调用 native 的 android_os_MessageQueue_nativeIsPolling
然后继续调用 system/core/libutils/Looper.cpp的 isPolling() 返回 变量
mPolling;
而 mPolling 默认为false ,赋值为 true的 地方只有一个 :
// We are about to idle.
mPolling = true;
struct epoll_event eventItems[EPOLL_MAX_EVENTS];
int eventCount = epoll_wait(mEpollFd.get(), eventItems, EPOLL_MAX_EVENTS, timeoutMillis);
// No longer idling.
mPolling = false;
也就是 Looper 当前是空闲的,正在等待epoll新的事件到来 。
所以 java 层的 MessageQueue的 isPolling 方法 返回 true 表示 Looper 当前是没有在处理任务 。