postCallbackDelayedInternal 源码分析
时间: 2023-07-01 14:15:35 浏览: 74
postCallbackDelayedInternal 是 Android 消息机制中的一个方法,用于延迟发送一个消息,让消息队列中的消息在一定的时间后才能被处理。下面是该方法的源码分析:
```java
private boolean postCallbackDelayedInternal(Runnable action, Object token, long delayMillis) {
if (delayMillis < 0) {
delayMillis = 0;
}
return sendMessageAtTime(getPostMessage(action, token),
SystemClock.uptimeMillis() + delayMillis);
}
```
该方法的参数包括一个 Runnable 对象 action,一个可选的 Object 对象 token 和一个表示延迟多少毫秒发送消息的 long 类型 delayMillis。
首先,该方法会对 delayMillis 进行判断,如果其小于 0,则将其设置为 0。
接着,该方法会调用 getPostMessage 方法来获取一个 Message 对象。该方法将会创建一个 Message 对象,并将其 what 字段设置为 POST_CALLBACK,obj 字段设置为 action,arg1 字段设置为 0,arg2 字段设置为 0,replyTo 字段设置为 null,target 字段设置为该 Handler 对象,callback 字段设置为 null。
最后,该方法调用 sendMessageAtTime 方法将该 Message 对象发送到消息队列中,指定发送时间为当前的 uptimeMillis 加上 delayMillis。
总结一下,postCallbackDelayedInternal 方法的作用是将一个 Runnable 对象封装成一个 Message 对象,并将其发送到消息队列中,指定一个延迟时间,等到指定时间之后才能被处理。
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pptx](https://img-home.csdnimg.cn/images/20210720083543.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)