Android Timer/CountDownTimer execute on onResume(



我正在做一个小的安卓应用程序。我希望当应用程序停止时,启动计时器或计数停机时间,并在一段时间(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((方法中调用comeActivityLogin((时,你会开始一个新的活动,并且由于活动生命周期,onStop((方法会自动调用。

在 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

最新更新