android - Android Timer/CountDownTimer 在 onResume(
问题描述
我正在做一个小的 android 应用程序。我希望在应用程序停止时启动计时器或倒数计时器,并在一段时间(30 秒)后执行一个操作,在我的情况下关闭与服务器的连接。这很好用,问题是当您恢复应用程序时,计时器/倒数计时器会再次启动,我不希望这样。
这是我的代码:
@Override
protected void onStop() {
super.onStop();
desconexionTimer = new Timer();
desconexionTimer.schedule(new TimerTask() {
@Override
public void run() {
new ThreadDesconexion(this).execute();
}
}, 30 * 1000);
}
@Override
protected void onResume() {
super.onResume();
if(!ConexionServer.threIsConexion()){
comeActivityLogin();
}
}
我尝试使用 CountDownTimer 并发生同样的情况。
@Override
protected void onStop() {
super.onStop();
new CountDownTimer(30000, 1000) {
public void onTick(long millisUntilFinished) {
Log.d("INFO","HELLO");
}
public void onFinish() {
new ThreadDesconexion(this).execute() }
}.start();
}
我做错了什么?或者有什么方法可以做到这一点?非常感谢您
解决方案
使用以下代码在 onResume() 方法之前包含 onpause() ...
public long pause() {
mPauseTime = mStopTimeInFuture - SystemClock.elapsedRealtime();
mPaused = true;
return mPauseTime;
}
public long resume() {
mStopTimeInFuture = mPauseTime + SystemClock.elapsedRealtime();
mPaused = false;
mHandler.sendMessage(mHandler.obtainMessage(MSG));
return mPauseTime;
}
检查此链接以获取更多代码... https://android--examples.blogspot.com/2015/04/android-countdowntimer-start-pause.html
推荐阅读
- oop - 仅对一个 Button 进行特定操作
- vb.net - StreamReader、StreamWriter - 我需要什么参考库?如何让下面的代码工作?
- reactjs - 使用 react usecontext 测试 mobx 反应观察者 - React, Mobx
- java - 错误:运营商不存在:boolean = bytea 在 spring jpa 查询和 postgres
- sql - 我们可以使用维恩图来表征 INNER、OUTER、LEFT 和 RIGHT JOIN 之间的关系吗?
- ruby-on-rails - Rails:包含在模型范围内不起作用
- html - 如何使页面可以左右滑动角度?
- reactjs - 为什么反应上下文需要提供者?
- c# - 如何为我的 C# windows 应用程序创建 CMD 命令?
- python - 有人可以解释批量大小和每个时期的步数之间的关系吗?