2

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

这是我到目前为止所做的:私人按钮暂停、停止、开始、重置;私人计时码表;长时间当停止 = 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
4

1 回答 1

-1

您希望您的应用程序继续运行,即使活动不再可见。这个问题已经有了答案。例如这里:如何让 Android 应用程序无限期地运行?

于 2012-10-20T13:26:21.533 回答