java - 安卓:定时器问题

标签 java android timer

我有一些这样的代码:

public class MainActivity extends AppCompatActivity {
    private Button StartButton;
    private Button StopButton;
    private Timer timer;

    protected void onCreate(Bundle savedInstanceState) {
    //some code
    StartButton.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {
            //some code
            timer = new Timer();
            timer.schedule(task, 0, interval);
            timer.start();
        }
    });

    StopButton.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {
            //some code
            timer.cancel();
            timer = null;
        }
    });
    }
}

问题是当 onDestroy() 被调用时,计时器线程继续工作,但是到计时器对象的链接丢失了,所以我无法再控制它了。我怎样才能保留链接?

最佳答案

如果即使在 Activity 被销毁后您仍需要 Timer 工作,那么您不应该将 Timer 绑定(bind)到 Activity 生命周期。使用 Service 来控制计时器,因为您的目的是即使在 Activity 被销毁后仍能保持计时器工作/运行。 服务 旨在用于此目的。

关于java - 安卓:定时器问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35912444/

相关文章:

java - 使用外部网络服务时的测试策略

java - Arrays.asList 与 Arrays.stream 使用 forEach()

Android Chronometer 启动和停止但在停止时继续计数

java - 将 Shape 的中心与 JPanel 的中心对齐

java - Hibernate,对用户类型的简单依赖注入(inject)

java - Android 上 klio-mobile-dataservice 的 NoClassDefFoundError

android - 我可以在没有 setOngoing(true) 的情况下启动前台服务吗?

java - 如何使用php从Android将数据插入mysql数据库?

c# - 如何从另一个线程调用 UI 方法

c# - 如何基于numericupdown值设置计时器?