Android让秒表继续运行

时间:2012-10-20 13:04:06

标签: android

我正在开发一个倒数计时器。但即使我回到之前的活动,我也希望它能够运行。我怎么能实现这个目标? Android新手在这里。

这是我到目前为止所做的:         私人按钮暂停,停止,开始,重置;     私人天文台天文台表;     long timeWhenStopped = 0;

@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

1 个答案:

答案 0 :(得分:-1)

您希望自己的应用继续投放,即使活动不再可见。已有答案可以回答这个问题。例如在这里:How to keep an Android app running indefinitely?