如何保持意图服务运行



我有两个意图服务的例子。 一个是commonsware书中的下载示例。 另一个是在 http://www.vogella.com/articles/AndroidServices/article.html#servicecommunication_handler。这两个示例都显示了执行有限任务的服务,并且它们显然都通过运行到 onHandleIntent 事件范围的末尾来破坏自己。

我正在编写的服务必须有事件并倾听事物。 一个是侦听GPS移动的LocationListener。 另一个将帖子发布到 REST 服务并侦听回复。 我希望它一直运行到一段时间过去或启动它的活动告诉它退出为止。

如何保持它运行? 例如,我应该把LocationListener的实现放在哪里?谢谢,加里

如何保持它运行?

你没有。 IntentService旨在完成一项工作(或者如果命令碰巧快速传入,则可能是队列中的一些工作),然后关闭。

我正在编写的服务必须有事件并倾听事物。

那么你不应该使用IntentService。根据需要使用常规Service,以及您自己的后台线程。

要保持服务运行,您的服务需要在服务方法 onStartCommand() 中返回START_STICKY

这样,即使您退出活动,该服务也将运行。

注意:如果服务不是前台服务,Android 仍然会在一段时间后(30 分钟到 1 小时)终止服务。使用startForeground(notification)使其成为前景。

祝你好运

您可以通过以下两种方式之一实现此目的,

  • 警报管理器
  • 定时器任务

AlarmManager是android的in-buite类,它允许你在特定时间执行某些操作。

TimerTask与AlarmManager执行相同的操作,您可以一次又一次地重复代码的某些操作。

然而,AlarmManager

在执行中是固定的,所以我建议你使用AlarmManager类。

创建一个警报管理器,用于获取 GPS 坐标并定期将其发布到服务器。

看看这个警报管理器示例。

相关内容

  • 没有找到相关文章

最新更新