【问题标题】:How to stop a Countdowntimer in a service from an Activity如何从 Activity 停止服务中的 Countdowntimer
【发布时间】:2017-01-30 07:44:03
【问题描述】:

我在服务中有一个Countdown timer,如果不停止,它将触发一系列事件。 我启动了一个 Activity 并带有一个显示剩余倒计时的文本字段,如果此对话框未关闭/关闭,则计时器将执行其 onFinish() 指令。

我可以在倒数计时器的onTick() 方法中使用广播更新Activity

我的问题是,如果用户清除警告/警报对话框,我如何将消息发送回服务到cancel() 计时器。

附带问题:onTick() 方法定期触发回调他们认为定期间隔我不想向每毫秒活动。那会不会是过度广播?当我只需要每秒更新倒计时。

【问题讨论】:

    标签: android android-activity service countdowntimer


    【解决方案1】:

    我不知道这是否是最佳解决方案,这取决于您执行此操作的频率,但您可以使用共享偏好 - 将其写入您的应用程序并在服务中检查它。 关于附带问题 - 您在实例化计时器时设置间隔,因为这是构造函数 CountDownTimer(long millisInFuture, long countDownInterval)

    【讨论】:

    • 不知道这是否是最好的解决方案,但它确实有效,我现在正在使用它。另一种选择是通过 startService() 调用服务并在onStartCommand() 中使用指定更新的Intent。因为服务应该仍然运行,否则你可以处理服务已关闭的事实。
    • 我可能不得不问另一个问题,因为我不知道如果onStartCommand() 仍在处理中会发生什么。然后又打来了startService() 的电话。它会排队吗?或者多个onStartCommand() 调用会并行运行吗?
    • 我不知道会发生什么 - 但我相信您会在这里找到答案:developer.android.com/reference/android/app/Service.html,在“服务生命周期”下。如果您仍有疑问,这似乎是适当的日志记录和时间戳比较可以解决的问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-29
    • 1970-01-01
    相关资源
    最近更新 更多