【问题标题】:Using a Timer to perform AsyncTask periodically使用 Timer 定期执行 AsyncTask
【发布时间】:2014-03-05 18:52:28
【问题描述】:

当应用程序处于前台时,我使用Timer 定期(每分钟一次)使用AsyncTask 下载一些数据。

当应用程序移至后台时,我读到如果您的设备上正在运行任何其他占用内存的应用程序,则计时器可能会被“终止”。

  1. 因此,如果我回到我的应用程序,我需要重新启动计时器,但前提是它已被杀死。如果计时器被杀死,它会是null吗?如何检测到这一点?

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

【问题讨论】:

    标签: android timer background android-asynctask


    【解决方案1】:

    当应用程序重新启动或在前台时覆盖 onRestart 方法,如下所示:

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

    【讨论】:

      猜你喜欢
      • 2011-09-01
      • 1970-01-01
      • 2011-01-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-07-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多