1

我都研究过,IntentService 真的很简单,而服务对我来说有点困惑。我在这里看到了很多问题,我倾向于 IntentService,但恐怕在我的某些工作中,IntentService 不是一个首先去,..这就是我的游戏要做的..在Farmville有点相似

  1. 创建新游戏,游戏内日期是每周,从第 1 周开始。数据存储在 SQLiteDB 中
  2. 启动IntentService,IntentService会做这件事情。在每个任务之后,通过 NotificationManager 通知用户

    • 每 8 小时更新一周。(1 周 = 8 小时,使用警报管理器)当周更新时,即第 1 周到第 2 周,IntentService 将检查“植物已准备好收获”
    • IntentService 每周也会随机化天气
    • 检查和更新动物/植物状况
    • 做更多随机的事情
    • 停止意图服务
    • 8 小时后再次运行 Intentservice。

这就是我的游戏应该做的,是 IntentService 还是 Service?IntentService 可以处理这个吗?我真的很想要该服务,但根据我在文章和此处阅读的内容的理解,它应该仅用于“同时多个进程”,而我的游戏可以不使用该功能。

另外,我可以再做一个 IntentService 吗?这项服务必须每 5 分钟左右运行一次。如果没有,那没关系。谢谢

4

2 回答 2

2

AnIntentService在后台运行,seperate Thread因此在服务中执行的任何操作都不会影响 UI。但是一旦服务完成了它应该做的事情,服务就会自行终止。

Aservice也在后台做一些事情,但是UI thread如果你有任何耗时的事情需要做,它会阻止 UI。这也会一直运行,直到您告诉它大部分停止。

如果您使用警报来触发一切,我会说 IntentService 很好。

于 2012-11-03T02:49:38.370 回答
1

我建议在您的情况下使用 IntentService + AlarmManager 对。

IntentService 创建一个队列和后台线程来处理作业,因此您可以确保一切都在一个接一个地运行。它还会在您的 500 行代码结束后完成并关闭,它也可以进行数据库更新。

服务更多地用于在后台进行工作,例如在线播放音乐等。您启动服务,手动关闭服务。对于 IntentService 它是自动的。

于 2012-11-03T07:22:31.993 回答