- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
机器人Handler类包含此方法:
public final boolean postAtTime (Runnable r, Object token, long uptimeMillis)
在给定时间发布 Runnable。由于此方法,token
稍后可用于从消息队列中删除对 r
的回调:
public final void removeCallbacks (Runnable r, Object token)
Handler 类中不存在的方法
public final boolean postDelayed (Runnable r, Object token, long delay)
是否有充分的理由不提供这种方法?
最佳答案
看了源码,token对象最终传给了Message:
public final boolean postAtTime(Runnable r, Object token, long uptimeMillis)
308 {
309 return sendMessageAtTime(getPostMessage(r, token), uptimeMillis);
310 }
private static Message getPostMessage(Runnable r, Object token) {
608 Message m = Message.obtain();
609 m.obj = token;
和postDelay
public final boolean postDelayed(Runnable r, long delayMillis)
330 {
331 return sendMessageDelayed(getPostMessage(r), delayMillis);
332 }
如果你想要的是
public final boolean postDelayed (Runnable r, Object token, long delay)
那为什么不直接使用
public final boolean postAtTime (Runnable r, Object token, long uptimeMillis)
因为它是一样的。
更新,忘了加上这个:
public final boolean sendMessageDelayed(Message msg, long delayMillis)
442 {
443 if (delayMillis < 0) {
444 delayMillis = 0;
445 }
446 return sendMessageAtTime(msg, SystemClock.uptimeMillis() + delayMillis);
447 }
关于java - Handler.postAtTime 与 Handler.postDelayed,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14690093/
我正在尝试制作一个每分钟都会更改 UI 的应用程序,但我在使用 postAtTime 函数时遇到了很多困难,因为我无法触发它。我已经用 postDelay 尝试过它并且它有效,但 postAtTime
来自(Android Handler 类) http://developer.android.com/reference/android/os/Handler.html#postAtTime(java
方法的描述uptimeMillis说: Returns milliseconds since boot, not counting time spent in deep sleep. Note: Th
机器人Handler类包含此方法: public final boolean postAtTime (Runnable r, Object token, long uptimeMillis) 在给定时
请告诉我 handler.postAtTime 和 handler.postDelayed 在 android 中的区别,也请指导我何时使用 handler.postAtTime 以及何时使用 han
我是一名优秀的程序员,十分优秀!