如何使用 system.currentTimeMillis 记录秒表的开始时间?当您的activity
onResume()
oronStart()
被调用时,我如何更新手表以显示从保存时间开始经过的时间?谢谢。到目前为止我尝试过的没有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