返回自引导以来的毫秒数,不计入深度睡眠所花费的时间.注意:此值可能偶尔会重置(否则会被包围).
似乎很奇怪的是,医生们担心它会缠绕在一起.毕竟,该方法返回一个long.一个快速的计算结果表明它需要大约292,271,023年才能永远包裹!
那么文档怎么了?它真的可以包装吗?值是否可以在达到最大值之前换行?这是文档实际上试图说的吗?如果是这样,它何时会换行?
[特别令人费解的是,System.currentTimeMillis()也是一个代表自纪元以来时间的长.然而,Android绝对没有提到价值包装的可能性.更重要的是,对于从0开始的uptimeMillis ...]
我正在尝试编写一个基于文本的基本游戏,因为我正在学习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) 我正在写一个包含几个"adb shell"命令的脚本.我还想记录程序以实时和正常运行时间的形式执行这些命令的时间.我知道我可以通过SystemClock获得正常运行时间和实时性:
SystemClock.uptimeMillis();
SystemClock.elapsedRealtime();
Run Code Online (Sandbox Code Playgroud)
有什么办法可以从命令行获取这些信息吗?
非常感谢!
我在查询游标的AppEngine文档中遇到了以下段落:
游标的一个有趣应用是监视实体的看不见的变化.如果应用程序在每次实体更改时使用当前日期和时间设置时间戳属性,则应用程序可以使用按时间戳属性(按升序排序)的查询,并使用数据存储区光标检查实体何时移动到结果列表的末尾.如果更新了实体的时间戳,则使用游标的查询将返回更新的实体.如果自上次执行查询后未更新任何实体,则不返回任何结果,并且光标不会移动.
为了使其可靠地工作,必须对不同服务器实例之间的时钟同步提供某种保证.否则你可能会遇到以下情况:
据我所知,从来没有任何这样的时钟同步保证.这改变了???
更新:
我刚刚意识到,即使时钟完全同步,这种方法也可能因为查询的最终一致性而错过结果.如果稍后的更新最终在早期更新之前提交并使其成为同时查询而前一个更新没有,则它将隐藏先前的更新.或者我错过了什么?
你如何转换SystemClock.elapsedRealTime()为可以在textview中显示的人类可读的CharSeq?
我们有一个主进程写入日志的情况。
然后它产生多个写入自己日志的工作进程。(我希望工人通过 master 登录,但由于某种原因,这个想法遭到了抵制。)
我想知道的是,我可以相信最终出现在多个文件中的时间戳彼此一致吗?即,如果我将日志文件合并到一个按即时排序的单个文件中,事件的顺序是否正确?跨所有可能的操作系统?
我问这个的原因是我有一个奇怪的情况,在主进程报告工作进程有错误后两秒钟,工作进程似乎记录了错误。就好像师父能够预知未来。(我猜主人也是时间领主,但是呃……)
我们希望每1000秒运行一次任务(比方说).
所以我们有
timer.scheduleAtFixedRate(task, delay, interval);
Run Code Online (Sandbox Code Playgroud)
大多数情况下,这很好.但是,这是一个嵌入式系统,用户可以更改实时时钟.如果他们在我们设置定时器之后将其设置为过去的时间,则计时器似乎直到原始实时日期/时间才执行.因此,如果他们将其设置为3天,则计时器不会执行3天:(
这是允许的行为,还是Java库中的缺陷?Oracle javadoc似乎没有提及有关依赖性的任何信息,也没有提及系统时钟的基础值.
如果允许的话,我们如何发现这个时钟变化并重新安排我们的计时器?
我正在尝试提高 qemu 运行的速度,例如,真实 CPU 的一个滴答声将对应于 qemu 虚拟时间的两个滴答声。这是可能的,如果是的话,有人对如何去做这件事有任何指示吗?
我创建了一个包含大量片段的应用程序。在我的最后一个片段中,我尝试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) 这是我找到的一些代码:
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上没有找到任何迹象表明该值始终以纳秒为单位。是否有可能使用另一个编译器、操作系统或硬件返回微秒?
再回来看我的视觉时钟.我需要一些指导.我正在尝试制作一个"时钟"图表来计算用户输入的事件时间之前的时间(以小时为单位),例如直到他们吃晚餐,睡觉等.在我的草图中,"现在"是暗灰色线左边,我想创建一个系统,根据实时计算这些输入时间.白蜱表示一天24小时.我也希望渐变相对于"现在"改变,取决于外面的亮度.提出了映射,但我甚至不知道从哪里开始.这是我的草图和代码:任何帮助你不胜感激!
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) 系统chrono头 ( /usr/include/c++/9/chrono) 声明但不定义static now()其时钟的功能。我也没有看到看起来相关的包含内容。这些功能是在哪里实现的呢?
我想延迟几秒钟并显示 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中如何设置延迟?
那么问题出在哪里呢?
system-clock ×13
android ×5
java ×4
c++ ×2
c++-chrono ×2
time ×2
2d ×1
adb ×1
clock ×1
delay ×1
emulation ×1
gcc9 ×1
instance ×1
processing ×1
qemu ×1
text-based ×1
timertask ×1