天道酬勤,学无止境

system-clock

Set Android's date/time programmatically

I need set the date/time from Android programmatically, but I'm not having success! I have these three sources above: Source code 1 AlarmManager alarm = (AlarmManager) getSystemService(ALARM_SERVICE); alarm.setTime(1330082817000); AndroidManifest: <uses-permission android:name="android.permission.SET_TIME" /> <uses-permission android:name="android.permission.SET_TIME_ZONE" /> Exception: Service fatal error : Unable to start activity ComponentInfo{br.com.tdta.service/br.com.tdta.service.Service}: java.lang.SecurityException: setTime: Neither user 10038 nor current process has android.permission

2021-11-21 12:26:53    分类:问答    java   android   system-clock

如何在android中延迟秒?(How to delay seconds in android?)

问题 我想延迟几秒钟并显示 Toast,我尝试SystemClock.sleep 但它只显示最后一条消息(“10s”)... Toast.makeText(MainActivity.this,"1s", Toast.LENGTH_SHORT).show(); SystemClock.sleep(5000); Toast.makeText(MainActivity.this,"5s", Toast.LENGTH_SHORT).show(); SystemClock.sleep(5000); Toast.makeText(MainActivity.this,"10s", Toast.LENGTH_SHORT).show(); 那应该按1s、5s、10s的顺序显示不是吗? 我也参考了这个做法,但是无法实现...android中如何设置延迟? 那么问题出在哪里呢? 回答1 尝试处理程序 public void showToast(final String message, int timeInMilliSeconds, final Context context) { Runnable runnable = new Runnable() { @Override public void run() { Toast.makeText(context, message, Toast.LENGTH

2021-11-20 20:30:18    分类:技术分享    android   delay   system-clock

How to delay seconds in android?

I want to delay seconds and show Toast,I try to SystemClock.sleep But it only show last message("10s")... Toast.makeText(MainActivity.this,"1s", Toast.LENGTH_SHORT).show(); SystemClock.sleep(5000); Toast.makeText(MainActivity.this,"5s", Toast.LENGTH_SHORT).show(); SystemClock.sleep(5000); Toast.makeText(MainActivity.this,"10s", Toast.LENGTH_SHORT).show(); That should be displayed in sequence 1s, 5s, 10s is not it? I also made reference to this practice, but it can not be achieved... How to set delay in android? So does the problem lie?

2021-11-14 01:22:51    分类:问答    android   delay   system-clock

以特定方式获取计时时间(getting chrono time in specific way)

问题 我有以下C代码: uint64_t combine(uint32_t const sec, uint32_t const usec){ return (uint64_t) sec << 32 | usec; }; uint64_t now3(){ struct timeval tv; gettimeofday(&tv, NULL); return combine((uint32_t) tv.tv_sec, (uint32_t) tv.tv_usec); } 这样做的目的是将 32 位时间戳和 32 位“某物”(可能是微/纳秒)组合成单个 64 位整数。 我真的很难用 C++11 chrono 重写它。 这是我到目前为止所做的,但我认为这是错误的做法。 auto tse = std::chrono::system_clock::now().time_since_epoch(); auto dur = std::chrono::duration_cast<std::chrono::nanoseconds>( tse ).count(); uint64_t time = static_cast<uint64_t>( dur ); 重要说明- 我只关心前 32 位是“有效”时间戳。 第二个 32 位“部分”可以是任何东西 - 纳秒或微秒 - 只要这个函数的两个连续调用给我不同的第二个

2021-10-30 04:45:46    分类:技术分享    c++   c++11   chrono   system-clock   gettimeofday

getting chrono time in specific way

I have following C code: uint64_t combine(uint32_t const sec, uint32_t const usec){ return (uint64_t) sec << 32 | usec; }; uint64_t now3(){ struct timeval tv; gettimeofday(&tv, NULL); return combine((uint32_t) tv.tv_sec, (uint32_t) tv.tv_usec); } What this do it combine 32 bit timestamp, and 32 bit "something", probably micro/nanoseconds into single 64 bit integer. I have really hard time to rewrite it with C++11 chrono. This is what I did so far, but I think this is wrong way to do it. auto tse = std::chrono::system_clock::now().time_since_epoch(); auto dur = std::chrono::duration_cast<std

2021-10-30 04:26:38    分类:问答    c++   c++11   chrono   system-clock   gettimeofday

JavaScript setTimeout 和更改系统时间会导致问题(JavaScript setTimeout and changes to system time cause problems)

问题 我注意到,如果我将来将setTimeout设置为1分钟,然后将我的系统时间更改为过去5分钟,则setTimeout函数将在6分钟后触发。 我这样做是因为我想看看在夏令时更改系统时钟期间会发生什么。 我的 JavaScript 网页使用setTimeout函数每 5 秒自动刷新一次页面,如果发生夏令时,那么页面信息将冻结一个小时。 有解决方法吗? 编辑:我正在使用 Ajax 更新页面,我不想刷新整个页面。 回答1 我要做的是从每 5 秒打开一个新的 Ajax 请求更改为使用 Comet(长轮询)。 这是一个更好的选择,因为服务器会在每次需要时将新结果推送到浏览器,这可以是服务器端每 5 秒或每次有新信息可用时。 更好的是使用网络套接字并让 Comet 作为后备。 这很容易用 Faye 或 socket.io 实现。 还有其他选项,例如 CometD 或 Ape。 回答2 使用setInterval而不是setTimeout应该可以解决您的问题:) 更新: 如果你真的不能使用 setTimeout 或 setInterval,你可以尝试使用一个隐藏的iframe来加载一个简单的 HTML 页面,看起来像这样: <html> <head> <meta http-equiv="refresh" content="300"/> <script> document.domain=

2021-10-21 15:56:04    分类:技术分享    javascript   settimeout   system-clock

HAL_RCC_OscConfig 花费的时间太长(大约 170 μS),从 STOP 唤醒时我需要它<50 μS(HAL_RCC_OscConfig takes too long (appx 170 μS), I need it to be <50 μS when waking from STOP)

问题 在 NUCLEO-L053R8 板上开发 STM32L053R8。 我们有一个系统,它每 200 μS 左右从睡眠中“唤醒”一次,执行少量工作然后返回睡眠状态(停止模式)。 理想情况下,我希望在 50 μS 内从 STOP 模式中唤醒。 HAL_RCC_OscConfig()函数需要大约 170 μS,这使得这项工作毫无意义。 从我所见,大部分时间都花在了 PLL 配置上,尤其是在 PLL 重新启用(大约 98 μS)之后的 while 循环(“等待 PLL 准备就绪”)。 /* Configure the main PLL clock source, multiplication and division factors. */ __HAL_RCC_PLL_CONFIG(RCC_OscInitStruct->PLL.PLLSource, RCC_OscInitStruct->PLL.PLLMUL, RCC_OscInitStruct->PLL.PLLDIV); /* Enable the main PLL. */ __HAL_RCC_PLL_ENABLE(); /* Get timeout */ tickstart = HAL_GetTick(); /* Wait till PLL is ready */ while(__HAL_RCC_GET_FLAG(RCC_FLAG

2021-10-08 16:58:30    分类:技术分享    c   microcontroller   stm32   sleep-mode   system-clock

自第一次启动以来的时间(Time since first boot up)

问题 我正在开发一个 android 应用程序并遇到了确定系统首次启动时间的问题。 我的意思是我需要测量从设备第一次启动已经过去了多少时间。 我知道通过侦听 ACTION_BOOT_COMPLETED 并将任何内容保存在 SharedPreferences 中的解决方案,但我需要另一种解决方案,因为这在某些情况下不起作用。 也许有任何系统属性? 用例(摘自讨论) 我从服务器收到的每个文件的文件名都包含一个取自System.currentMillis()的时间戳我比较这些时间戳以确定最新的文件是哪个文件。 现在,用户提前几个月更改系统时间。 我仍然能够确定用户更改系统时间后下载的最新文件。 现在,用户将时间改回原始设置。 在比较时间戳时,在第 4 步下载的文件总是获胜。 解决这个问题的灵丹妙药是一个时间戳,它计算自第一次启动(恢复出厂设置后)以来的秒数。 就像SystemClock.elapsedRealtime()但每次启动后没有重置。 不幸的是,到目前为止的答案告诉我们,这个灵丹妙药并不存在。 但是,许多答案显示了如何解决该问题的多种选择。 OneWorld123 评论了每个答案,说明这如何满足他的需求。 回答1 也许有任何系统属性? 不确定系统属性,但有 SystemClock 类提供 API 来获取系统正常运行时间: SystemClock.uptimeMillis() 其中

2021-08-30 19:06:07    分类:技术分享    java   android   time   clock   system-clock

Google AppEngine 服务器实例时钟同步(Google AppEngine server instance clock synchronization)

问题 我刚刚在查询游标的 AppEngine 文档中看到以下段落: 游标的一个有趣应用是监视实体是否有看不见的变化。 如果应用程序在每次实体更改时使用当前日期和时间设置时间戳属性,则应用程序可以使用按时间戳属性升序排序的查询以及数据存储游标来检查实体何时移动到结果列表的末尾. 如果实体的时间戳已更新,则带有游标的查询将返回更新后的实体。 如果自上次执行查询后未更新任何实体,则不会返回任何结果,并且光标不会移动。 为了使其可靠地工作,必须对不同服务器实例之间的时钟同步有某种保证。 否则,您可能会遇到以下情况: 服务器实例 1(快速时钟)使用时间戳 1000 保存更新。 客户要求更新并找到这一更新。 服务器实例 2(慢时钟)使用时间戳 950 保存另一个更新。 客户端要求更新并且没有找到此更新,因为时间戳没有增加。 据我所知,从来没有任何这样的时钟同步保证。 这个改了吗??? 更新: 我刚刚意识到,即使时钟完美同步,由于查询的最终一致性,这种方法可能会错过结果。 如果较晚的更新最终在较早的更新之前提交并使其成为同时查询而较早的更新没有,它将隐藏较早的更新。 或者我错过了什么? 回答1 我在时钟和谷歌云平台上找到的唯一文档在这里和这里。 根据第一个链接帖子,实例是使用 NTP 服务同步的,这已经为您完成了。

2021-08-11 20:35:21    分类:技术分享    google-app-engine   synchronization   instance   system-clock

了解dumpsys gfxinfo的时间信息(Understand the time information of dumpsys gfxinfo)

问题 我想了解 dumpsys gfxinfo 日志上的时间信息。 它看起来像这样: Applications Graphics Acceleration Info: Uptime: 16264702 Realtime: 28169900 谁能告诉我如何将这些数字与 System.currentTimeMillis() 相关联? 回答1 从 ActivityManagerService.java: long uptime = SystemClock.uptimeMillis(); long realtime = SystemClock.elapsedRealtime(); pw.println("Applications Graphics Acceleration Info:"); pw.println("Uptime: " + uptime + " Realtime: " + realtime); 同样来自 SystemClock 描述: 可以使用三种不同的时钟,不要混淆它们: System.currentTimeMillis()是标准的“挂钟”(时间和日期),表示自纪元以来的毫秒数。 挂钟可以由用户或电话网络设置(请参阅setCurrentTimeMillis(long) ),因此时间可能会不可预测地向后或向前跳跃。 仅当与现实世界的日期和时间对应很重要时才应使用此时钟

2021-08-11 19:34:15    分类:技术分享    android   performance   adb   system-clock   gfx