2
我正在开发一个倒数计时器。但是我希望它即使在我回到以前的活动时也会运行。我怎么能做到这一点? 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
那么什么解决方案会对我的应用程序有利?对不起android新手在这里 – Dunkey
它必须作为服务运行 – NilsB
你有关于服务的代码片段,所以它可以让我开始?谢谢。 – Dunkey