即使应用程序关闭,也要运行时钟或计时器 - Android

时间:2013-08-07 04:02:49

标签: java android service timer clock

曾经玩过Candy Crush吗?知道你的生命如何耗尽,必须等待30分钟才能重建新的生命,最多可以达到5岁?这是我想在我的应用程序中实现的想法,但我不确定如何在用户关闭应用程序和/或电话时运行代码。

我的问题是如何让计时器在手机背景中持续运行,直到计时器达到X分钟。我会使用Timer类吗?因为我熟悉那个类,并且已经在我的应用程序中实现了它的一种形式。

4 个答案:

答案 0 :(得分:1)

您的问题分为两部分:

  • 要实际运行计时器,以便在一段时间后执行某项操作,请使用AlarmManager。仅当您要主动中断或通知用户时才应使用此功能。
  • 您的方案实际上并不需要计时器,而且不必不必要地使用计时器也更有效。而是存储时间戳。再次打开应用程序时,将当前时间与时间戳进行比较并计算效果。在再生生活的例子中,你要比较时间戳,看看已经过了100分钟,除以30分钟,并增加3个生命(可能保留额外的10分钟剩余时间)。

答案 1 :(得分:1)

如果您希望计时器在后台运行,您可以使用AlarmManager。您可以按指定的时间间隔设置警报,或者如果您想要单次警报,可以将其设置为使用中。此外,在使用AlarmManager时请注意,如果您的手机发生故障,那么您设置的所有闹钟都将消失。因此,请注意在手机关机前保存闹钟时间。看看:

http://developer.android.com/reference/android/app/AlarmManager.html

使用AlarmManager时,请使用正确的PendingIntent标记,否则可能会丢失先前的警报。如果您仍想要更多信息,可以在此处筹集或拥有谷歌。

答案 2 :(得分:0)

即使应用程序关闭,我也认为您不能为您的应用程序运行计时器。这是我想到的一个想法:

  • 当生命消失并且应用程序正在运行时,您需要启动计时器。
  • 在应用程序关闭事件中,将该计时器值保存在永久存储器(如文件
  • )中
  • 在应用程序启动时,从持久存储中读取计时器值,并在剩余时间内重新启动计时器
  • 一旦计时器到期,就会产生新的生命。

希望它有所帮助!

答案 3 :(得分:0)

我发现this答案可能会有很大帮助。希望它能帮助别人。

  

有几种不同的方法。

     
      
  • 您可以使用系统的AlarmManager。
  •   
  • 您可以自己制作服务。
  •   
  • 您可以使TimerObject保持不变。
  •   

检查完整答案和链接的链接。