Android 每5分钟添加一次值并重置textview
我是Android的初学者。我发明了一个计时器,它能工作。我添加了一个新函数(每5分钟文本视图中显示一个值1000,10分钟后需要2000)。此功能可以工作,但如果我单击按钮退出并重新打开计时表,5分钟后该值将继续增加到以前的值,但我希望在单击退出后重置此值。我用过Android 每5分钟添加一次值并重置textview,android,Android,我是Android的初学者。我发明了一个计时器,它能工作。我添加了一个新函数(每5分钟文本视图中显示一个值1000,10分钟后需要2000)。此功能可以工作,但如果我单击按钮退出并重新打开计时表,5分钟后该值将继续增加到以前的值,但我希望在单击退出后重置此值。我用过 finish();handler.removeCallbacks(null);处理程序。后延迟(测试,100)但它似乎不起作用。谢谢 btnStart.setOnClickListener(new View.OnClickListe
finish();handler.removeCallbacks(null);处理程序。后延迟(测试,100)代码>但它似乎不起作用。谢谢
btnStart.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (lastPause != 0) {
chronometer.setBase(chronometer.getBase() + SystemClock.elapsedRealtime() - lastPause);
} else {
chronometer.setBase(SystemClock.elapsedRealtime());
}
chronometer.start();
suppl();
btnStart.setEnabled(false);
btnStop.setEnabled(true);
btnExit.setEnabled(false);
}
});
btnStop.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
chronometer.stop();
onPause();
lastPause = SystemClock.elapsedRealtime();
btnStop.setEnabled(false);
btnStart.setEnabled(false);
btnExit.setEnabled(true);
}
});
btnExit.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
finish();
handler.removeCallbacks(null);
handler.postDelayed(test, 100);
}
});
}
Handler handler = new Handler();
Runnable test;
public void suppl() {
test = new Runnable() {
@Override
public void run() {
count += 1000;
tprice.setText(String.valueOf(count));
handler.postDelayed(test, 5000);
}
};
handler.postDelayed(test, 5000);
}
public void onPause() {
super.onPause();
if (handler != null)
handler.removeCallbacks(test);
}
为此,我建议使用一种新的方法
使用time task时,您可以使用计时器上的cancel()
取消所有挂起的任务
如果您对此解决方案有任何疑问,请告诉我。改用倒计时
CountDownTimer CD = new CountDownTimer(11000, 1000) {
public void onTick(long millisUntilFinished) {
xo = (int) (millisUntilFinished / 1000);
secondsleftimg.setText("seconds remaining: " + millisUntilFinished / 1000);
试试这个:
替换这一行代码:
handler.removeCallbacks(null);
为此:
handler.removeCallbacksAndMessages(null); // it will remove all hadler
btnExit.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
focus.setBase(SystemClock.elapsedRealtime());
handler.removeCallbacksAndMessages(null);
lastPause= 0;
}
});
使用FLAG\u Activity\u NEW\u TASK启动活动,或添加android:launchMode=“singleInstance”
在AndroidManifest
中,您要做的就是重置计时器时间。如果我错了,请更正我?我想重置指针我的计时器重置成功,但不是handler@jose因为在处理程序中传递null,所以需要在removecallback()中传递可运行的。如果仍然面临问题,请告诉我。您可以举一个例子,我搜索了,但没有任何效果。我无法重置时间。我在btnExit中执行“tprice.setText(String.valueOf(count-=count));”操作,谢谢