创建一个倒数计时器 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已关闭,您将无法以任何方式拦截显示触摸事件。
我需要实现一种“超时”机制。
要求给定一个时间(以毫秒为单位),启动一个从给定时间开始倒计时的倒数计时器。
当时间为零时,必须触发一个动作(如显示对话框)。
此计时器不得受 activity 或片段限制,但应在用户触摸屏幕时重置为给定时间。
我正在考虑两种实现方式:
1) 在应用程序 class 中创建一个倒数计时器,使其不受任何 activity 或片段的限制。 Application
class 通过 LiveData
.
2) 创建一个绑定服务class,其中包含倒数计时器并通过BroadcastReciever
公开结果。
我只想知道哪种方法最好?还是有更好的方法?我听说过 JobScheduler
是否有针对此用例的工作?
提前致谢。
您可以创建一个普通的 Thread 对象,并在其 "run()" 方法中执行 "while(System.currentMilliseconds() < mFixedTime){}" 在其中循环,直到达到并通过特定的固定时间,但是如果您的 Activity已关闭,您将无法以任何方式拦截显示触摸事件。