类的概述
核心计时设施。
<wbr></wbr>
三种不同的时钟是适合的,并且他们不应该被混淆:
System.currentTimeMillis()是一个标准的“墙”时钟(时间和日期)表达毫秒自纪元。该墙时钟能够被用户或电话网络(见setCurrentTimeMillis(long))设置,所以时间可能会向前或向后不可预知地跳。该时钟应该仅仅被使用,当现实世界的对应的日期和时间是重要的,例如在一个日历或闹钟应用程序。间隔的或经过的时间测量应该使用一个不同的时钟。如果你使用System.currentTimeMillis(),考虑监听<wbr></wbr>ACTION_TIME_TICK
,ACTION_TIME_CHANGED
<wbr></wbr>和<wbr></wbr>ACTION_TIMEZONE_CHANGED
意图广播去发现当时间变化的时候。
uptimeMillis()以毫秒为单位进行计数自系统启动时,返回的是系统从启动到当前处于非休眠期的时间。该时钟停止当系统进入深度睡眠时(CPU关闭,显示黑暗,等待外部输入装置),但是不被时钟调整,闲置或其他节能机制影响。<wbr></wbr>这是基本的对于大多数时间间隔例如Thread.sleep(millls)
,
Object.wait(millis)
,和<wbr></wbr>System.nanoTime()
。
该时钟被保证是单调的,并且是为通用的用户界面事件,性能测量,和其他任何不需要在器件测量经过睡眠时间间隔时间的建议的基础。大多数的方法接受一个时间戳的值除了uptimeMillis()时钟。
elapsedRealtime()以毫秒为单位进行计数自动系统启动,包含深度睡眠。该时钟应该被使用当测量时间间隔可能跨越系统睡眠的时间段。
这有一些机制为了控制定时事件的:
标准的功能像<wbr></wbr>Thread.sleep(millis)
<wbr></wbr>和<wbr></wbr>Object.wait(millis)
<wbr></wbr>都总是合适的。这是功能使用uptimeMillis()时钟;如果该设备进入睡眠,剩余的时间将被推迟直到系统唤醒。这些同步功能可能被中断伴随<wbr></wbr>Thread.interrupt()
方法,并且你必须处理InterruptedException异常。
SystemClock.sleep(millis)<wbr></wbr>是一种实用工具函数变化类似于Thread.sleep(millis)
,
但是它忽视了InterruptedException异常。使用该函数产生的延迟如果你不使用Thread.interrupt(),因为它会保存线程的中断状态。
处理程序类可以安排在绝对或相对时间异步回调。处理器类对象也使用<wbr></wbr>uptimeMillis()
时钟,并且需要一个eventloop(正常呈现在任何一个GUI应用程序上)。该AlarmManager可以触发一次或重复事件去发生即使在深睡眠或你的应用程序没有运行。事件可能有计划的发生伴随你的<wbr></wbr>currentTimeMillis()(RTC)
机会或<wbr></wbr>elapsedRealtime()
<wbr></wbr>(ELAPSED_REALTIME),并且引起一个意图广播当它们发生时。
分享到:
相关推荐
更多的时候,我们使用 `System.currentTimeMillis()` 来获取系统当前时间,或者 `SystemClock.elapsedRealtime()` 和 `SystemClock.elapsedRealtimeNanos()` 来获取自系统启动以来的经过时间,这些方法在不影响系统...
在你提供的资料中,提到了一个名为“为apk签android.uid.system名工具包”,这个工具包包含三个关键文件:signapk.jar、platform.x509.pem和platform.pk8,它们是用来将APK签署为具有`android.uid.system`权限的工具...
cannot find symbol import android.os.SystemProperties 前言 最近在搞Android高版本的9和10开发,正在敲着代码唱着歌,发现在Android源码目录的app下面导入import android.os.SystemProperties这个包老是不行...
系统用户界面_com.android.systemui,当您误删此文件,您的安卓手机会提示:com.android.systemui已经停止工作,此时您就需要下载此文件,重新安装即可。
### 错误解析:Caused by: android.system.ErrnoException: write failed: ENOSPC (No space left 在Android开发过程中,可能会遇到“Caused by: android.system.ErrnoException: write failed: ENOSPC (No space ...
在Android操作系统中,"android.uid.system"是一个关键的概念,它涉及到系统的权限管理和应用程序的运行环境。这个标签指示了与系统核心服务和权限相关的文件集合。下面将详细解释这个概念及其相关文件的重要性和...
1. 创建BroadcastReceiver类:自定义一个继承自BroadcastReceiver的类,并重写onReceive()方法来处理接收到的广播。 2. 在需要接收广播的地方注册:例如,在Service或Activity的onCreate()方法中,使用Context的...
System.nanoTime() System.currentTimeMillis() SystemClock.uptimeMillis() SystemClock.elapsedRealtime() SystemClock.currentThreadTimeMillis 0、时间的单位: 秒:second 毫秒:Millisecond 微妙:Microsecond...
Android webview apk 版本:115.0.5790.138,兼容32/64位。
替换sdk路径下/platforms/android-28/android.jar,能够解决在android studio 看源码部分类报红及能够正常编译项目。解决替换as后报错:Failed to transform file 'android.jar' to match attributes {artifactType=...
做usb accessory通信时,myUsbManager.getAccessoryList();return null,说是少文件。解决办法是先root手机,然后把这两个文件推送到手机的/system/etc/permissions目录下。
在`ActDialog`类中,将其主题设置为`@android:style/Theme.Dialog`,这样看起来就像一个对话框,而无需`SYSTEM_ALERT_WINDOW`权限。 另外,还有一个替代方案,即使用`TYPE_TOAST`类型的窗口,但这种类型的窗口不能...
2. **System Services**: Android系统服务是Android框架的核心,如电源管理、通知管理、网络连接等。源码解析了这些服务的启动、注册和调用流程。 五、安全与权限管理 Android的安全模型基于Linux内核,源码中展示...
Packt.Android.System.Programming.2017
首先,`Environment`类是System命名空间中的一个静态类,它提供了对环境变量、命令行参数和操作系统信息等系统级别的访问。`OSVersion`属性则是`Environment`类的一个成员,用于获取当前操作系统的版本信息。`...
在提供的"Android.rar"压缩包中,包含了两个关键的系统镜像文件:ramdisk-u.img和system.img。这两个文件在Android系统架构中扮演着至关重要的角色。 1. ramdisk-u.img:这个文件代表了Android系统的初始 RAM 分区...
这是AOSP Webview, 包名com.android.webview, 不带google的 带google包名的可以下载 google system webview覆盖安装,可以略过 此文件包含 arm和arm64的webview这是AOSP Webview, 包名com.android.webview, 不带...
注意,从Android 7.0(API级别24)开始,使用`Settings.System.setCurrentTimeMillis()`需要`SYSTEM_CLOCK`权限,这通常只适用于系统应用。对于非系统应用,你可能需要使用反射来调用这个方法,但这种方法不推荐,...
适用于安卓5,armv8a和armv7a
05-27 15:35:11.487 E/AndroidRuntime( 2352): Process: com.android.systemui, PID: 2352 05-27 15:35:11.487 E/AndroidRuntime( 2352): java.lang.RuntimeException: Unable to create service ...