创建一个倒数计时器 activity/fragments

Creating a countdown timer which survives activity/fragments

我需要实现一种“超时”机制。

要求给定一个时间(以毫秒为单位),启动一个从给定时间开始倒计时的倒数计时器。

当时间为零时,必须触发一个动作(如显示对话框)。

此计时器不得受 activity 或片段限制,但应在用户触摸屏幕时重置为给定时间。

我正在考虑两种实现方式:

1) 在应用程序 class 中创建一个倒数计时器,使其不受任何 activity 或片段的限制。 Application class 通过 LiveData.

公开结果

2) 创建一个绑定服务class,其中包含倒数计时器并通过BroadcastReciever公开结果。

我只想知道哪种方法最好?还是有更好的方法?我听说过 JobScheduler 是否有针对此用例的工作?

提前致谢。

您可以创建一个普通的 Thread 对象,并在其 "run()" 方法中执行 "while(System.currentMilliseconds() < mFixedTime){}" 在其中循环,直到达到并通过特定的固定时间,但是如果您的 Activity已关闭,您将无法以任何方式拦截显示触摸事件。