我正在开发一个倒数计时器。但即使我回到之前的活动,我也希望它能够运行。我怎么能实现这个目标? 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
答案 0 :(得分:-1)
您希望自己的应用继续投放,即使活动不再可见。已有答案可以回答这个问题。例如在这里:How to keep an Android app running indefinitely?