【发布时间】:2014-03-12 20:16:23
【问题描述】:
问题:
嵌入式环境中持久/始终在线的传感器数据收集服务的最佳实践是什么?永久连接的电源,没有用户因其他正在运行的服务而恶化,因此没有电池寿命或可用性问题。
计划:
一个本地的Service,startForeground(),START_STICKY,可能会获得一个PARTIAL_WAKE_LOCK,从BOOT_COMPLETED开始。这将不是 Play 商店应用程序。我将有一个可以绑定到服务的活动,以获取反馈、设置首选项,并在需要时手动启动/停止服务。由于这将在没有 UI 的专用设备上运行并且不依赖电池电量,这应该绕过服务的大多数常见问题,我可以/应该做些什么来确保服务以高优先级运行它被杀死的可能性最小?有没有比以这种方式实现的服务更好的选择?
背景(可选阅读):
我编写了一个基于多线程 Activity 的应用程序,它在启动完成时通过广播接收器启动,运行验证,运行数据收集线程,连接到远程服务的数据传输线程,并执行其他任务t 与本次讨论有关。我需要过渡到基于服务的解决方案。根据我的阅读,收集传感器数据的服务的最佳实践通常涉及通过AlarmManager 定期启动服务。这在我的情况下不起作用。
【问题讨论】:
-
好问题!我建议稍微提炼一下,如果人们不必阅读太多,他们会更愿意回答。
-
感谢您的建议!我尽可能地蒸馏
-
你把传感器控制器放在哪里了?如果服务只是为了保持应用程序运行,那么控制器可以是单例,或者由 Application 类中的某个对象持有,对吧?