Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> android TimeUnit表示給定單元顆粒度的時間段

android TimeUnit表示給定單元顆粒度的時間段

編輯:關於Android編程

public enum TimeUnit
extends Enum
TimeUnit 表示給定單元粒度的時間段,它提供在這些單元中進行跨單元轉換和執行計時及延遲操作的實用工具方法。TimeUnit 不維護時間信息,但是有助於組織和使用可能跨各種上下文單獨維護的時間表示形式。
TimeUnit 主要用於通知基於時間的方法如何解釋給定的計時參數。 例如,如果 lock 不可用,則以下代碼將在 50 毫秒後超時:
Lock lock = ...;
if ( lock.tryLock(50L, TimeUnit.MILLISECONDS) ) ...
而以下代碼將在 50 秒後超時:
Lock lock = ...;
if ( lock.tryLock(50L, TimeUnit.SECONDS) ) ...
但是注意,不保證特定超時實現能夠以與給定 TimeUnit 相同的粒度通知 段。
從以下版本開始:
1.5
枚舉常量摘要
MICROSECONDS 微秒 一百萬分之一秒(就是毫秒/1000)
MILLISECONDS 毫秒 千分之一秒
NANOSECONDS 毫微秒 十億分之一秒(就是微秒/1000)
SECONDS 秒
MINUTES 分鐘
HOURS 小時
DAYS 天
主要接口:
long convert(long duration, TimeUnit unit)
將給定單元的時間段轉換到此單元。
void sleep(long timeout)
使用此單元執行 Thread.sleep.這是將時間參數轉換為 Thread.sleep 方法所需格式的便捷方法。
void timedJoin(Thread thread, long timeout)
使用此時間單元執行計時的 Thread.join。
void timedWait(Object obj, long timeout)
使用此時間單元執行計時的 Object.wait。
long toMicros(long duration)
等效於 MICROSECONDS.convert(duration, this)。
long toMillis(long duration)
等效於 MILLISECONDS.convert(duration, this)。
long toNanos(long duration)
等效於 NANOSECONDS.convert(duration, this)。
long toSeconds(long duration)
等效於 SECONDS.convert(duration, this)。
static TimeUnit valueOf(String name)
返回帶有指定名稱的該類型的枚舉常量。
static TimeUnit[] values()
按照聲明該枚舉類型的常量的順序,返回包含這些常量的數組。
注意1:它的常量MICROSECONDS,MILLISECONDS,NANOSECONDS,SECONDS都是TimeUnit類型
注意2:convert(long duration, TimeUnit unit)的意思將duration這個時間轉化為本對象(this)所表示的時間形式。
本對象可能MICROSECONDS,MILLISECONDS,NANOSECONDS,SECONDS的一種。
至於duration是哪種形式的時間(MICROSECONDS,MILLISECONDS,NANOSECONDS,SECONDS的一種),
則是通過參數TimeUnit unit來確定的
注意3TimeUnit是enum(枚舉)類型,不能通過外部來實例化
對用戶來說只有它內部定義的下常量可用:MICROSECONDS,MILLISECONDS,NANOSECONDS,SECONDS,MINUTES,HOURS,DAYS
注意4:對於常量MINUTES,HOURS,DAYS,在Java1.5和Android中並沒看到,但是在Java1.6中卻有。
注意5:關於枚舉類型的知識可參加《枚舉類型實例1:
class Task implements Delayed
{
String name;
long submitTime;
Task(String taskName,long delayTime)
{
name=taskName;
/*conver the time from MILLISECONDS to NANOSECONDS
* *
*/
submitTime=TimeUnit.NANOSECONDS.convert(submitTime, TimeUnit.MILLISECONDS) + System.nanoTime();
}
public long getDelay(TimeUnit unit)
{
System.out.println("get delay");
return unit.convert(submitTime - System.nanoTime(), TimeUnit.NANOSECONDS);
}
public int compareTo(Delayed o)
{
System.out.println("compareTo");
Task that = (Task) o;
return submitTime > that.submitTime?1:(submitTime < that.submitTime ? -1 : 0);
}
void doTask()
{
System.out.println("do task:"+name);
}
}
  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved