【问题标题】:android: run timer for long periodandroid:长时间运行计时器
【发布时间】:2014-09-18 13:18:18
【问题描述】:

如果我想在 android 中长时间运行计时器并显示用户,当他们进入特定活动时,例如,自从计时器作为实时数字启动以来的持续时间 - 我应该如何实现这一点?通过实时,我的意思是显示的时间实时变化,就像人们期望的计时器一样。这个计时器只需要一个实例,它几乎就像 android 的秒表,但实现为在自定义应用程序中运行。

我需要唤醒锁吗?

我应该创建服务吗?

还是我应该只使用一个简单的 java 计时器?

非常感谢任何帮助/建议。

谢谢。

【问题讨论】:

    标签: android timer


    【解决方案1】:

    “长计时器”1 分钟,一天是什么意思?

    您必须意识到,android 可以随时杀死您的活动,因此活动不是执行此操作的正确位置。

    您可以在 Service 中运行您的操作 - 他的生命比活动的更长,但您可能想要检查时间,即使用户在一周后返回活动或重新启动设备。

    如果你告诉更多关于你想要什么的信息,解决你的问题会更容易。

    在用户进行特定活动时向用户显示

    正如我看到你的问题,解决方案应该是这样的:

    1. 首先进入活动 - 创建计时器,启动它,
    2. 在活动停止时保存计时器和系统时间的当前值,
    3. 在重新创建活动时读取保存的值并使用 init_value + (current_time - saved_time) 的值启动新计时器。

    在这种情况下,即使用户离开您的活动甚至重新启动设备,您也可以确保计时器是持久的。

    而且电池寿命也会更长:)

    【讨论】:

    • 计时器的长度只是直到用户停止它(停止它符合他们的利益,因为它提供的数据是为了他们的利益)但我会说最多 8 小时故障保险。使用您提到的方法(听起来很完美),如果用户按下解锁键但实际上并未解锁屏幕,我能否将经过的时间作为持久通知或在屏幕上显示?
    • 您可以在通知栏或任何地方显示时间。也许最好的方法是使用服务并从那里更新通知中的消息-如果您想每秒/分钟获得“新鲜”数据。当活动消失时,不要依赖 activi 的逻辑。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-10
    • 1970-01-01
    • 2012-08-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多