我正在做一个小型的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();
}
我做错了什么?或者有办法做到这一点? 非常感谢你
答案 0 :(得分:0)
我认为当您在onResume()方法中调用comeActivityLogin()时,您会启动一个新活动,并且由于活动生命周期,会自动调用onStop()方法。
答案 1 :(得分:0)
使用以下代码在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