使用带有线程

时间:2016-07-11 09:58:48

标签: android multithreading android-service android-intentservice

我正在构建一个监控应用程序,该应用程序将从移动设备捕获尽可能多的信息,例如运行进程/活动连接/网络统计/活动接口等。显然,我将需要一个将在其中运行的服务背景,但我不完全确定如何实现它。

有人建议我创建一个IntentService,它将使用AlarmManager以特定的时间间隔执行,执行它的操作然后再次死亡。 In this thread人建议使用永远在线的服务实现,该服务启动自己的线程来完成工作,让它进入睡眠状态,然后再进行。还建议使用AlarmManager以确保在操作系统杀死服务时重新启动服务。 用于监控实时数据的mpst适当实现是什么? (或每个的上/下)。请注意,我捕获的许多信息都不会产生意图(因此我无法注册接收器)

非常感谢:)

1 个答案:

答案 0 :(得分:0)

  

请注意,我捕获的许多信息都不会产生意图(所以我不能只注册接收器)

然后您将无法使用 Intent 服务,因为您的应用无法知道何时启动它。

如果您想要“实时”更新信息,那么您将不得不使用服务(有或没有它自己的后台线程)。你不能使用AlarmManager,因为它几乎总是运行得太晚(不是“实时”)。

请注意,需要花费一些精力才能让您的服务始终运行,因为有几种不同的情况可以停止运行,即使您已经尽力实现它,仍然有操作系统或用户阻止它运行。