我正在为一个专门的户外运动写一个简单的计时应用程序.该应用程序每秒执行一系列计算,并显示用户感兴趣的信息.经过的时间是计算结果准确性的关键.理想情况下,计算和结果将每秒更新一次.我尝试使用计时器或计时器小部件来控制更新间隔:
是否有更准确的方法来建立间隔?有没有一种技术会给我一个几乎精确的一秒间隔?
下面的代码并不完整 - 只是为了显示我正在使用的时间和计时器的类型 - 它们运行良好,它们只是不精确.
import java.util.Timer ;
import java.util.TimerTask;
...
myTimer = new Timer();
myTimer.schedule(new TimerTask() {
public void run() {
...
TimerMethod();
}
}, 0, 1000);
...
private void TimerMethod()
{
this.runOnUiThread(Timer_Tick);
}
...
private Runnable Timer_Tick = new Runnable() {
public void run() {
blah blah
}
Run Code Online (Sandbox Code Playgroud)
///////////////////////////////
import android.widget.Chronometer;
...
final Chronometer myChronometer = (Chronometer)findViewById(R.id.chronometer);
final TextView keyBox = (TextView)findViewById(R.id.keyBox);
...
myChronometer.start();
...
myChronometer.setOnChronometerTickListener(
new Chronometer.OnChronometerTickListener(){
...
public void onChronometerTick(Chronometer myChronometer) {
blah blah …Run Code Online (Sandbox Code Playgroud) 在Chronometer中,我们如何提取经过的时间并将其分别存储在变量中.
例如,存储单独的int变量中经过的小时数,分钟数,秒数?
可能吗?如果是,怎么样?
除了天文台表,使用其他一些概念可以做得更好吗?如果是,那是什么?
所以我正在尝试编写一个秒表应用程序,以毫秒为单位显示时间,但由于某种原因它不起作用.基本上我只有一个togglebutton,按下后,开始打印从开始时间到当前时间的毫秒......但在模拟器中,应用程序锁定.怎么了?
public class testing extends Activity {
/** Called when the activity is first created. */
Button start,stop;
long init,now,time;
TextView display;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.test);
display = (TextView) findViewById(R.id.chronometer1);
final ToggleButton passTog = (ToggleButton) findViewById(R.id.onoff);
passTog.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
init=System.currentTimeMillis();
while(passTog.isChecked())
{
now=System.currentTimeMillis();
time=now-init;
display.setText("t: " + time);
}
}
});
}
Run Code Online (Sandbox Code Playgroud)
}
我正在制作一个赛车游戏,现在我想要实现一个时钟/天文台来显示您的时间.
我想在ChangeableText中显示实际时间,在另一个ChangeableText中显示最佳单圈时间.
我如何每秒或每0.1秒更新一次?
我怎样才能检测到一圈结束时的情况,例如在终点线(确定的x和y位置)?
谢谢.
我有一个应用程序,我正在向用户显示他正在做的事情的计时器.每当活动进入后台(通过主页按钮或返回)时,我保存该时间(以秒为单位),当活动恢复时,我想继续从同一时间运行计时器.用户可能会从列表中选择一个不同的项目,时间也不同,他也可能会关闭手机...我可以节省计时器的时间,但我不能用开始时间设置它.
从Chornometer API,该方法setBase()指出:
设置计数定时器参考的时间.
根据我的理解,这意味着如果我将此值设置为currentTime,它将从0开始计数.现在,如果我希望它以17s开始,我想将基数设置为currentTime减去17秒前的时间.所以类似于:
setBase(system.currentTimeMillis() - (17 * 1000)).
Run Code Online (Sandbox Code Playgroud)
但是这不起作用,它始终以0开始!
我在这里阅读了一些其他的主题,但没有一个答案有帮助.它始终以0开头!
提前致谢.
我已经定义了一个天文台表;
protected Chronometer chrono;
protected int baseTime;
protected int stopTime;
protected long elapsedTime;
Run Code Online (Sandbox Code Playgroud)
我的程序向用户提问,我想根据用户的输入设置一个计时器.我想要一个从10到0开始的计时器.我该怎么做?
另外,我想在屏幕上显示剩余时间.
公共方法isTheFinalCountDown只是打开歌曲The Final Count Down的 YouTube 视频。
所有的文档必须说的是这样的:
这是否是最后的倒计时
由于这是一个公共 api,因此该方法的实际用例是什么。或者它只是另一个类似isUserAGoat功能的复活节彩蛋?
我编写了一些非常简单的代码,应该代表一个带有两个按钮的秒表,其中单击“开始”应该从 0 开始向上计数,延迟 1 秒。
但是,当我单击时没有任何变化。我的错误在哪里?
"use strict";
var s = 1;
function mf() {
setInterval(function() {
document.getElementById("#sw").innerText = ++s;
}, 1000);
}Run Code Online (Sandbox Code Playgroud)
<div id="sw">0</div>
<input type="button" value="Start" name="start" onlick="mf" />
<input type="button" value="Stop" name="stop" />Run Code Online (Sandbox Code Playgroud)
我想在 android.I 中更改我的计时器的字体。我已将默认字体设置为自定义字体。该字体似乎适用于除天文钟以外的所有地方。我也试过设置,android:fontFamily="@font/myfont"但没有用。虽然字体似乎应用在预览窗口中,但当我在我的设备上运行我的应用程序时它不会改变。
有什么办法克服它吗?
这是我的代码:
<Chronometer
android:fontFamily="@font/linotte_semibold"
android:id="@+id/audio_player_chronometer"
android:layout_width="wrap_content"
android:layout_height="20dp"
android:layout_below="@+id/frame_layout"
android:textColor="@color/white"
android:layout_margin="5dp"
/>
Run Code Online (Sandbox Code Playgroud) chronometer ×10
android ×9
java ×2
timer ×2
andengine ×1
intervals ×1
javascript ×1
milliseconds ×1
sdk ×1
stopwatch ×1
time ×1
xml ×1