Android 中的 Handler 用于处理 UI 更新和一些耗时操作。
偶然看到了 addIdleHandler ,记录下探索过程。
Looper.myQueue().addIdleHandler(new MessageQueue.IdleHandler() {
@Override
public boolean queueIdle() {
if (mContentLayout != null && !mContentLayout.isInTouchMode()) {
mFirstBtn.setFocusable(true);
mFirstBtn.requestFocus();
}
return false;
}
});
网上搜索了一些答案:
return false 表示仅回调执行一次;
return true 表示一直回调执行;
addIdleHandler只会在线程空闲的时候执行,就算有延时消息也会延时消息执行完在执行,意思就是闲的蛋疼的时候执行才干活!!!!
可以将 addIdleHandler 用于处理启动优化,初始化的时候,非必须的操作项可以放到这里面执行。