gpt4 book ai didi

android - 定时器错误倒计时

转载 作者:行者123 更新时间:2023-11-30 04:04:51 25 4
gpt4 key购买 nike

我的计时器有问题。然后我按下处理程序的开始按钮值显示 -22406914:0-51 而不是倒计时。下面是代码(我用这个帮助帮助自己:http://android-developers.blogspot.com/2007/11/stitch-in-time.html)。我不知道我在哪里犯了错误...

public class biegi extends Activity {
TextView Todleglosc, Tpredkosc, Tczas;
ImageView Ibiegacz;
Button clear, startstop;
LocationManager locationManager;
Location lokacjaPoczatkowa;
String providerName;
boolean start;
private long startTime;
private Handler mHandler = new Handler();

protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.biegi);
inicjuj();
actionbuttonsc();
} // oncreate

private Runnable mUpdateTimeTask = new Runnable() {
public void run() {
final long start = startTime;
long millis = SystemClock.uptimeMillis() - start;
int seconds = (int) (millis / 1000);
int minutes = seconds / 60;
seconds = seconds % 60;

if (seconds < 10) {
Tczas.setText("" + minutes + ":0" + seconds);
} else {
Tczas.setText("" + minutes + ":" + seconds);
}
mHandler.postAtTime(this,start + (((minutes * 60) + seconds + 1) * 1000));
}
};

public void inicjuj (){
Todleglosc=(TextView) findViewById(R.id.odleglosc);
Tpredkosc=(TextView) findViewById(R.id.predkosc);
Tczas=(TextView) findViewById(R.id.czas);
Ibiegacz=(ImageView) findViewById(R.drawable.biegacz);
clear=(Button) findViewById(R.id.clear);
startstop=(Button) findViewById(R.id.button_bieg_start_stop);
start=false;
}


public void actionbuttonsc()
{
clear.setOnClickListener(new View.OnClickListener()
{
public void onClick(View v) {
Tczas.setText("00:00:00");

}
});

startstop.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
if (start==false)
{
Tczas.setText("00:00:01");
startTime = System.currentTimeMillis();
mHandler.removeCallbacks(mUpdateTimeTask);
mHandler.postDelayed(mUpdateTimeTask, 100);
start=true;
}

else if (start==true)
{
Tczas.setText("00:00:00");
mHandler.removeCallbacks(mUpdateTimeTask);
start=false;
}}});
}
}

最佳答案

你设置startTime使用 currentTimeMillis ( startTime = System.currentTimeMillis(); ),然后使用 uptimeMillis 读取它(long millis = SystemClock.uptimeMillis() - start;)。

这是我会做的:

// Change this:
long millis = SystemClock.uptimeMillis() - start;
// .. to this:
long millis = System.currentTimeMillis() - start;

关于android - 定时器错误倒计时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11872612/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com