Java 在应用程序进入后台时暂停scheduleAtFixedRate计时器?

Java 在应用程序进入后台时暂停scheduleAtFixedRate计时器?,java,android,timer,Java,Android,Timer,这是我的固定费率计时器代码。当活动进入onPause()时,我可以暂停此计时器吗。如果是这样的话,那么您建议我在onPause()中添加什么内容方法和计时器应在应用程序进入onResume()时开始工作: 你可以用 终止此计时器,放弃所有当前计划的任务。不干扰当前正在执行的任务(如果存在)。一旦计时器被终止,它的执行线程将正常终止,并且不能在其上安排更多的任务 将计时器声明为全局计时器 t = new Timer(); 试试这个 @Override protected void onP

这是我的固定费率计时器代码。当活动进入
onPause()时,我可以暂停此计时器吗。如果是这样的话,那么您建议我在
onPause()中添加什么内容方法和计时器应在应用程序进入
onResume()时开始工作

你可以用

  • 终止此计时器,放弃所有当前计划的任务。不干扰当前正在执行的任务(如果存在)。一旦计时器被终止,它的执行线程将正常终止,并且不能在其上安排更多的任务

将计时器声明为全局计时器

t = new Timer();
试试这个

 @Override
 protected void onPause() {
     super.onPause();
     t.cancel();
  }
当应用程序进入onResume()时,计时器应开始工作:

您需要在
onResume()中启动
Timer
试试这个


需要一点更新-您需要在onResume()中初始化计时器;否则将遇到“java.lang.IllegalStateException:计时器已被取消”总体解决方案运行良好。。谢谢Rathore Sahb:)
 @Override
 protected void onPause() {
     super.onPause();
     t.cancel();
  }
@Override
    protected void onResume() {
        super.onResume();

        t.scheduleAtFixedRate(new TimerTask() {
                                  @Override
                                  public void run() {
                                      // code here
                                  }
                              },
                //Set how long before to start calling the TimerTask (in milliseconds)
                20000,
                //Set the amount of time between each execution (in milliseconds)
                40000);
    }