Android 安卓天文钟
我正在开发一个android应用程序,我的计时器有问题。 当调用onChronometerTick方法时,TextView应该在第60秒得到更新,但它在第58秒第一次得到更新。如果你暂停并再次启动计时器,它会在不同的时间更新。我发现当我启动计时器时,onChronometerTick方法会被调用两次,这就是我的问题所在!有人能帮我吗? 谢谢 这是我的密码:Android 安卓天文钟,android,chronometer,Android,Chronometer,我正在开发一个android应用程序,我的计时器有问题。 当调用onChronometerTick方法时,TextView应该在第60秒得到更新,但它在第58秒第一次得到更新。如果你暂停并再次启动计时器,它会在不同的时间更新。我发现当我启动计时器时,onChronometerTick方法会被调用两次,这就是我的问题所在!有人能帮我吗? 谢谢 这是我的密码: int br = 0; @Override protected void onCreate(Bundle savedInstanceSta
int br = 0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
bProg = (Button) findViewById(R.id.bProgram);
bProg.setOnClickListener(this);
tv = (TextView) findViewById(R.id.textView1);
chrono = (Chronometer) findViewById(R.id.chronometer);
chrono.setBase(SystemClock.elapsedRealtime());
chrono.setOnChronometerTickListener(this);
chrono.stop();
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.bProgram:
Log.d(TAG, "bProgram Clicked");
checkButton();
// Change the electricity consumption for the given program
changeConsumption();
calculateSecondPrice();
tvCons.setText(String.valueOf(consumption * 1000 + " W"));
tvPrice.setText(String.valueOf(price + " lv."));
if (prog > 0) {
startChronometer();
}
if (prog == 0) {
pauseChronometer();
}
break;
}
}
private void pauseChronometer() {
timeWhenStopped = chrono.getBase() - SystemClock.elapsedRealtime();
chrono.stop();
}
private void startChronometer() {
if (prog == 1) {
chrono.setBase(SystemClock.elapsedRealtime() + timeWhenStopped);
chrono.start();
}
}
@Override
public void onChronometerTick(Chronometer chronometer) {
br++;
totalPrice += secondPrice;
if (br == 60) {
br = 0;
tv.setText(String.valueOf((double) (totalPrice) / 1000000));
}
}
}好的,我找到了一个方法。这帮助了我: