2014-03-05 63 views
0

我使用Timer在app处于前台时定期(一分钟一次)下载一些带有AsyncTask的数据。使用计时器定期执行AsyncTask

当应用程序移动到后台时,如果在设备上运行其他任何内存占用的应用程序,则会发生计时器“死亡”。

  1. 所以,如果我回到我的应用程序,我需要重新启动计时器,但只有当它已被杀死。如果它被杀死了,定时器会是null吗?我如何检测这个?

  2. 另一种方法是当应用程序转到背景时停止计时器,然后在应用程序转到前台时启动计时器。有没有什么方法可以检测应用何时从背景移动到背景/从背景移动到前景?

回答

0
覆盖

onRestart方法正在重新启动应用程序时,或在前景像这样:

@Override 
    protected void onRestart() { 
     super.onRestart(); 
     //Cancel your timer and then restart with your code. 
     timer.cancel() 
     //start timer with your existing code. 
    }