标签: system-clock

SystemClock.uptimeMillis()如何包装?

关于uptimeMillis()Android文档说:

返回自引导以来的毫秒数,不计入深度睡眠所花费的时间.注意:此值可能偶尔会重置(否则会被包围).

似乎很奇怪的是,医生们担心它会缠绕在一起.毕竟,该方法返回一个long.一个快速的计算结果表明它需要大约292,271,023年才能永远包裹!

那么文档怎么了?它真的可以包装吗?值是否可以在达到最大值之前换行?这是文档实际上试图说的吗?如果是这样,它何时会换行?


[特别令人费解的是,System.currentTimeMillis()也是一个代表自纪元以来时间的长.然而,Android绝对没有提到价值包装的可能性.更重要的是,对于从0开始的uptimeMillis ...]

android system-clock

6
推荐指数
1
解决办法
3145
查看次数

在基于文本的游戏中处理时间(Java)

我正在尝试编写一个基于文本的基本游戏,因为我正在学习Java.我希望能够在游戏中计算轮次,以此来管理某些事件的节奏.例如,更换房间可以限制为每轮一次(在测试代码中为一秒).小型生物可能以更高的速率攻击或更换房间,而较大的房间可能更麻烦.目前很好?大.

所以,我把它煮熟了,立刻意识到每次while循环等待玩家输入命令时我都会碰到一个块.码:

private void startPlaying() {
    //declare clock/round variables.
    int lastRound = 0;
    int currentRound = 0;
    long lastTime = System.currentTimeMillis();
    long currentTime;

    while (player.getIsPlaying()){
        //Clocking
        currentTime = System.currentTimeMillis();
        if ((lastTime + 1000) < currentTime) {
            lastTime = currentTime;
            lastRound = currentRound;
            currentRound++;
            System.out.println("Current round:\t" + currentRound + "\tCurrent time:\t" + currentTime); //EDIT:NOTE: This is just a test line to observe the loop.
        }//end if (Clocking)

        Command command = new Command();
        String[] commandString = command.setAll(); //Array gets parsed elsewhere.
        player.doCommand(commandString); …
Run Code Online (Sandbox Code Playgroud)

java system-clock text-based

6
推荐指数
1
解决办法
1169
查看次数

如何从命令行获取Android系统的正常运行时间和实时性?

我正在写一个包含几个"adb shell"命令的脚本.我还想记录程序以实时和正常运行时间的形式执行这些命令的时间.我知道我可以通过SystemClock获得正常运行时间和实时性:

SystemClock.uptimeMillis();
SystemClock.elapsedRealtime();
Run Code Online (Sandbox Code Playgroud)

有什么办法可以从命令行获取这些信息吗?

非常感谢!

android adb system-clock

6
推荐指数
2
解决办法
1万
查看次数

Google AppEngine服务器实例时钟同步

我在查询游标AppEngine文档中遇到了以下段落:

游标的一个有趣应用是监视实体的看不见的变化.如果应用程序在每次实体更改时使用当前日期和时间设置时间戳属性,则应用程序可以使用按时间戳属性(按升序排序)的查询,并使用数据存储区光标检查实体何时移动到结果列表的末尾.如果更新了实体的时间戳,则使用游标的查询将返回更新的实体.如果自上次执行查询后未更新任何实体,则不返回任何结果,并且光标不会移动.

为了使其可靠地工作,必须对不同服务器实例之间的时钟同步提供某种保证.否则你可能会遇到以下情况:

  1. 服务器实例1(快速时钟)使用时间戳1000保存更新.
  2. 客户端要求更新并找到此更新.
  3. 服务器实例2(慢速时钟)使用时间戳950保存另一个更新.
  4. 客户端要求更新,并且没有找到此更新,因为时间戳没有增加.

据我所知,从来没有任何这样的时钟同步保证.这改变了???

更新:

我刚刚意识到,即使时钟完全同步,这种方法也可能因为查询的最终一致性而错过结果.如果稍后的更新最终在早期更新之前提交并使其成为同时查询而前一个更新没有,则它将隐藏先前的更新.或者我错过了什么?

google-app-engine synchronization instance system-clock

6
推荐指数
1
解决办法
1173
查看次数

6
推荐指数
1
解决办法
8342
查看次数

`System.currentTimeMillis()` 在多个进程中是否正确?

我们有一个主进程写入日志的情况。

然后它产生多个写入自己日志的工作进程。(我希望工人通过 master 登录,但由于某种原因,这个想法遭到了抵制。)

我想知道的是,我可以相信最终出现在多个文件中的时间戳彼此一致吗?即,如果我将日志文件合并到一个按即时排序的单个文件中,事件的顺序是否正确?跨所有可能的操作系统?

我问这个的原因是我有一个奇怪的情况,在主进程报告工作进程有错误后两秒钟,工作进程似乎记录了错误。就好像师父能够预知未来。(我猜主人也是时间领主,但是呃……)

java time system-clock

6
推荐指数
1
解决办法
170
查看次数

如果时钟发生变化,Timertask.scheduleAtFixedRate应该怎么做?

我们希望每1000秒运行一次任务(比方说).

所以我们有

timer.scheduleAtFixedRate(task, delay, interval);
Run Code Online (Sandbox Code Playgroud)

大多数情况下,这很好.但是,这是一个嵌入式系统,用户可以更改实时时钟.如果他们在我们设置定时器之后将其设置为过去的时间,则计时器似乎直到原始实时日期/时间才执行.因此,如果他们将其设置为3天,则计时器不会执行3天:(

这是允许的行为,还是Java库中的缺陷?Oracle javadoc似乎没有提及有关依赖性的任何信息,也没有提及系统时钟的基础值.

如果允许的话,我们如何发现这个时钟变化并重新安排我们的计时器?

java clock system-clock timertask

4
推荐指数
2
解决办法
4550
查看次数

提高qemu时钟的速度

我正在尝试提高 qemu 运行的速度,例如,真实 CPU 的一个滴答声将对应于 qemu 虚拟时间的两个滴答声。这是可能的,如果是的话,有人对如何去做这件事有任何指示吗?

qemu emulation system-clock

4
推荐指数
1
解决办法
4774
查看次数

如何在Android中的某个时间段后执行任务?

我创建了一个包含大量片段的应用程序。在我的最后一个片段中,我尝试LogCat在 10 秒后打印一些内容。但它对我不起作用。

这是我的Fragment

public class StepTwentyTwoFragment extends Fragment {

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        View v = inflater.inflate(R.layout.step22_fragment, container, false);

        testMethod();
        return v;
    }

    public static StepTwentyTwoFragment newInstance() {

        StepTwentyTwoFragment f = new StepTwentyTwoFragment();
        Bundle b = new Bundle();

        f.setArguments(b);

        return f;
    }


    @Override
    public void setUserVisibleHint(boolean isVisibleToUser) {
        super.setUserVisibleHint(isVisibleToUser);
        if(isVisibleToUser) {
            Activity a = getActivity();
            if(a != null) a.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
        }
    }

    public void testMethod(){
        SystemClock.sleep(10000);
        Log.d("PPP : ","456");
    } …
Run Code Online (Sandbox Code Playgroud)

java android system-clock android-fragments

3
推荐指数
2
解决办法
7225
查看次数

std::chrono::system_clock 使用什么精度?

这是我找到的一些代码:

std::cout << std::chrono::system_clock::now().time_since_epoch().count() << std::endl;
Run Code Online (Sandbox Code Playgroud)

1662563612364838407为我打印;所以看起来这打印了自 UNIX 纪元 (1970-01-01) 以来的纳秒数。

但这个精度能保证吗?我在https://en.cppreference.com/w/cpp/chrono/system_clock上没有找到任何迹象表明该值始终以纳秒为单位。是否有可能使用另一个编译器、操作系统或硬件返回微秒?

c++ time system-clock c++-chrono

3
推荐指数
1
解决办法
897
查看次数

视觉时钟:处理新手

再回来看我的视觉时钟.我需要一些指导.我正在尝试制作一个"时钟"图表来计算用户输入的事件时间之前的时间(以小时为单位),例如直到他们吃晚餐,睡觉等.在我的草图中,"现在"是暗灰色线左边,我想创建一个系统,根据实时计算这些输入时间.白蜱表示一天24小时.我也希望渐变相对于"现在"改变,取决于外面的亮度.提出了映射,但我甚至不知道从哪里开始.这是我的草图和代码:任何帮助你不胜感激!

我在Illustrator中的素描

PFont din;
PFont din2;
color blue = color(0, 80, 200);
color orange = color(255, 150, 50);
int hr = hour();
float w, h, angle;


void setup () {
  size (1100, 600, P2D);
  din = loadFont("DIN-Medium-30.vlw");
  din2 = loadFont("DIN-Medium-15.vlw");
}


void draw() {

  background(255);

  gradientRect(90, 470, 850, 50, blue, orange);
  fill(0, 102, 153);
  textFont(din);

  if (hr > 12) {
    hr=hour()-12;

    text("pm", 220, 55);
  } else {
    text ("am", 220, 55);
  }

  text(nf(hr, 2)+":", 86, 55); 
  text(nf(minute(), 2)+":", 126, 55); …
Run Code Online (Sandbox Code Playgroud)

processing 2d system-clock

1
推荐指数
1
解决办法
171
查看次数

在哪里可以找到 std::chrono::system_clock::now() 的 GCC 9 实现?

系统chrono头 ( /usr/include/c++/9/chrono) 声明但不定义static now()其时钟的功能。我也没有看到看起来相关的包含内容。这些功能是在哪里实现的呢?

c++ system-clock c++-chrono gcc9

1
推荐指数
1
解决办法
1126
查看次数

如何在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();
Run Code Online (Sandbox Code Playgroud)

那应该是按顺序显示1s、5s、10s吧?

我也参考了这个做法,但是无法实现... android中如何设置延迟?

那么问题出在哪里呢?

android delay system-clock

-3
推荐指数
1
解决办法
2157
查看次数