【发布时间】:2019-09-04 22:05:19
【问题描述】:
如果我暂停chronometer,我将面临chronometer 的问题,它不会从停止的地方开始。所以我需要从它停止的地方开始。在onlocation 更改方法中,如果米小于 5 米,时间将开始,如果大于 5 米,时间将停止,但它不会从停止的地方开始
public class MainActivity{
@Override
public void onLocationChanged(@NonNull Location location) {
if (mPresenter.getLocalSTATUS() != null && mPresenter.getLocalSTATUS().equalsIgnoreCase(LOCAL_CONTINUE_RIDE))
{
if(mPresenter.getLocalSTATUS().equalsIgnoreCase(LOCAL_CONTINUE_RIDE))
{
if (results[0] < 5.09) {
cmTimer.start();
}
else {
pauseOffset = SystemClock.elapsedRealtime();
cmTimer.stop();
}
}
}
}
public void DonePickUpUI_OnClick() {
if (!resume) {
cmTimer.setBase(SystemClock.elapsedRealtime());
cmTimer.start();
} else {
cmTimer.start();
}
assert cmTimer != null;
cmTimer.setOnChronometerTickListener(arg0 -> {
if (!resume) {
if(mPresenter.getLocalSTATUS().equalsIgnoreCase(LOCAL_START_RIDE)) {
long minute = (((SystemClock.elapsedRealtime() - cmTimer.getBase()) / 1000) / 60);
long second = (((SystemClock.elapsedRealtime() - cmTimer.getBase()) / 1000) % 60);
elapsedTime_Done_pickup = SystemClock.elapsedRealtime();
Log.d(TAG, "onChronometerTick: " + minute + " : " + second);
offline_waiting_time.setText(minute + " : " + second);
}
} else {
if (mPresenter.getLocalSTATUS().equalsIgnoreCase(LOCAL_START_RIDE)) {
long minute = ((elapsedTime_Done_pickup - cmTimer.getBase()) / 1000) / 60;
long second = ((elapsedTime_Done_pickup - cmTimer.getBase()) / 1000) % 60;
elapsedTime_Done_pickup = elapsedTime_Done_pickup + 1000;
Log.d(TAG, "onChronometerTick: " + minute + " : " + second);
offline_waiting_time.setText(minute + " : " + second);
/*offline booking*/
}
}
});
/*offline booking*/
}
private void startRide_OnCLICK() {
cmTimer.setOnChronometerTickListener(arg0 -> {
if (!resume) {
if(mPresenter.getLocalSTATUS().equalsIgnoreCase(LOCAL_CONTINUE_RIDE)) {
long minute = (((SystemClock.elapsedRealtime() - cmTimer.getBase()) / 1000) / 60) - elapsedTime_Done_pickup;
long second = (((SystemClock.elapsedRealtime() - cmTimer.getBase()) / 1000) % 60) - elapsedTime_Done_pickup;
elapsedTime_Done_pickup = SystemClock.elapsedRealtime();
Log.d(TAG, "onChronometerTick: " + minute + " : " + second);
offline_waiting_time.setText(minute + " : " + second);
}
} else {
if (mPresenter.getLocalSTATUS().equalsIgnoreCase(LOCAL_CONTINUE_RIDE)) {
long minute = ((elapsedTime_Done_pickup - cmTimer.getBase()) / 1000) / 60;
long second = ((elapsedTime_Done_pickup - cmTimer.getBase()) / 1000) % 60;
elapsedTime_Done_pickup = elapsedTime_Done_pickup + 1000;
Log.d(TAG, "onChronometerTick: " + minute + " : " + second);
offline_waiting_time.setText(minute + " : " + second);
/*offline booking*/
}
}
});
}
}}
【问题讨论】:
-
某人的“简历”实现:stackoverflow.com/a/25315085/2711811