我有一個活動,我想跟蹤兩個操作之間的時間間隔(對於ex startAction和endAction)。我已經使用下面的代碼來實現一個計時器,該計時器增加了500用戶按下startAction按鈕後MS:當應用程序關閉時計數的Android計時器
TextView dayTimer = (TextView)findViewById(R.id.tvDayTimer);
long startTime;
class DayTimer extends TimerTask {
@Override
public void run() {
BBCAndroid.this.runOnUiThread(new Runnable() {
public void run() {
long millis = SystemClock.elapsedRealtime() - startTime;
int seconds = (int) (millis/1000);
int minutes = seconds/60;
seconds = seconds % 60;
dayTimer.setText(String.format("%d:%02d", minutes, seconds));
}
});
}
};
startDayButton.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
// TODO Auto-generated method stub
startTime = SystemClock.elapsedRealtime();
timer.schedule(new DayTimer(), 0,500);
LoginResult.DayState = 1;
startDayButton.setEnabled(false);
endDayButton.setEnabled(true);
}
});
現在我的問題是,如果我退出應用程序定時器stops.How我可以做,即使當用戶退出應用,它運行?總而言之,即使應用程序已關閉,我也需要一個計數器。
您可以保存一個開始時間戳並將其與當前時間戳一起使用來計算已過去的時間。就像這樣,即使用戶完全關閉應用程序,計時器在重新打開時也會再次運行。 –
如果您希望應用程序在運行時運行,則必須使用在後臺運行並且永遠不會被系統關閉的服務。 或者,當應用程序即將關閉時,您可以記住日期和時間值,並查看您的應用程序再次啓動時的區別。 –