Android java 3種時間獲取方法的差異

2021-06-27 18:50:13 字數 917 閱讀 5195

也許我們從來不在意獲取時間方面的差異,不過如果你仔細閱讀文件會發現,android中,有3種不同的時間獲取方法:他們之間是存在差異的,並且根據這些差異,應該用在不同的地方。 

在android.os.systemclock這個類中,文件詳細的闡述了3種方法的差異和適用範圍。 

system.currenttimemillis()像乙個標準的掛鐘("wall" clock)一樣(時間和日期)描述了自從世界協調時間2023年1月1日0:00到現在的時間差,以毫秒為單位計算。但是這個時間可以通過使用者或**的網路來修改(可以使用setcurrenttimemillis(long)來修改),因此這個時間就變得不可**。所以通常情況下,我們應該在與

真實世界相關的地方使用這個時間。例如日曆或者鬧鐘,而內部時間或者計算流逝掉的時間應該採用不同的方法。如果非要用system.currenttimemillis(),那麼應該設定乙個***來監聽 action_time_tick, action_time_changed 和 action_timezone_changed 這三個intent廣播,當時間發生改變的時候。

uptimemillis()則是從系統啟動之後開始即時,當系統進入深度休眠(如cpu關閉,螢幕關閉,裝置等待外部輸入)的時候停止。但是不會受到時鐘調整,空閒,或者其他節能機制的影響。這個方法是大多數內部計時的基礎。如thread.sleep(millis), object.wait(millis) 和 system.nanotime()。這個計時器保證不會發生變化。對於使用者介面事件,和相關的處理,推薦採用這個計時器

elapsedrealtime()這個即時會從系統啟動之後一直執行,即使進入深度休眠(cpu關閉,螢幕關閉)也不會停止,適用於需要跨越多個休眠週期的計時。

**

時間問題3

問題及 檔名稱 main.cpp 作 者 李磊濤 版 本 號 v1.0 問題描述 輸入時間輸出時間。輸入描述 時間時分秒和要增加的時分秒。程式輸出 時間時分秒。includeusing namespace std class time void time add a sec void time ad...

3種氣泡排序

第一種 最基本的解法 void bubble sort1 int a,int size if for while 第一種解法每次從第乙個元素開始把第i 1個最大的元素放到它應有的位置,而每次卻是比較所有的n個元素,明顯每次和之前已經排好的元素比較屬於多餘,引出解法2 每次排序後n自減1。第二種 與咱...

查詢演算法 3種

思路分析 1.首先需要確定該陣列的中間下標 2.讓需要查詢的數 findval 和 arr mid 比較 結束遞迴的條件 1.找到就結束遞迴 2.遞迴完整個陣列,仍沒有找到,也需要結束遞迴,當left right 就需要退出 實現 第乙個方法適用於陣列中只有乙個待查詢的結果 第二個方法適用於陣列中有...