1
如何使用system.currentTimeMillis記錄秒錶的開始時間?當您調用activity
onResume()
或onStart()
時,如何更新手錶以顯示從保存時間起經過的時間?謝謝。什麼到目前爲止,我還沒有試過onResume()
:Android中保存的onResume活動狀態?
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_LEFT_ICON);
setContentView(R.layout.stopwatch);
getWindow().setFeatureDrawableResource(Window.FEATURE_LEFT_ICON, R.drawable.clock32);
// initializes controls
initControls();
// sets format for chronometer
chronometer.setText("00:00:00");
}
private void initControls(){
// initializes buttons & chronometer
pause = (Button) findViewById (R.id.btStopWatchPause);
stop = (Button) findViewById (R.id.btStopWatchStop);
start = (Button) findViewById (R.id.btStopWatchStart);
reset = (Button) findViewById (R.id.btStopWatchReset);
chronometer = (Chronometer) findViewById (R.id.chronometer);
// sets listeners for buttons and chronometer
pause.setOnClickListener(this);
stop.setOnClickListener(this);
start.setOnClickListener(this);
reset.setOnClickListener(this);
chronometer.setOnChronometerTickListener(this);
}
public void onClick(View v) {
// TODO Auto-generated method stub
switch(v.getId())
{
case R.id.btStopWatchStart:
chronometer.setBase(SystemClock.elapsedRealtime() + timeWhenStopped);
chronometer.start();
break;
case R.id.btStopWatchStop:
chronometer.stop();
break;
case R.id.btStopWatchReset:
chronometer.setBase(SystemClock.elapsedRealtime());
break;
case R.id.btStopWatchPause:
timeWhenStopped = chronometer.getBase() - SystemClock.elapsedRealtime();
chronometer.stop();
break;
} // end of switch statement
}
public void onChronometerTick(Chronometer c) {
// TODO Auto-generated method stub
CharSequence text = c.getText();
if (text.length() == 5) {
c.setText("00:" + text);
} else if (text.length() == 7) {
c.setText("0" + text);
}
} // end of onChronometerTick method