做后台计时器的最佳方式

Best way to do a background timer

我正在尝试制作一个简单的游戏。游戏进行得很顺利,只是我想使用后台计时器。就像在城市建设游戏中一样,一项任务需要 x 小时才能完成,之后应该会有通知。做这个的最好方式是什么?我是否需要后台服务和警报管理器?将任务的启动计时器也保存在 SQLLite 数据库中是否明智,这样如果计时器停止,他仍然可以在数据库中启动后看到它?

基本上我要问的是,什么是最好的实践,你们有没有一些建议或更好的建议,examples/tutorials 对我来说?

我推荐你使用AlarmManager,它是原生的,你不需要实现一些后台服务,它不消耗电池,而且很容易使用。 请参考this tutorial.

此外,您可以将开始时间保存在 SharedPreferences(或 DB,如您所愿)中,当用户重新启动应用程序时,检查作业是否尚未完成。这是一个额外的步骤,以确保即使 AlarmManager 出错也能按预期工作