2012-07-20 146 views
0

我已经构建了一个应用程序,该应用程序使用磁场传感器充当磁簧开关,以在活动中运行某些方法。它每周7天,每天24小时运行,手机无法访问,因此用户无需关闭应用程序。但是,该应用程序在长时间等待后崩溃;我不确定我是否采取了正确的方法:基于活动或基于服务。Android长时间运行活动/服务

我对服务的理解是,他们对后台活动很好,但是由于我的活动总是在运行,我不认为这是正确的方法。同样,由于我的活动在后台运行,并且由于它不断地读取磁场并在需要时创建本地广播意图,所以这可能会导致各种广播接收机出现问题(也就是说,如果它们不是在onResume,并在onPause期间取消注册)。

正如我在第一段中提到的,我想知道哪一个是运行磁场传感器来触发本地广播意图的首选方法。

回答

0

应该没问题。如果它崩溃了什么是日志?

那么,你仍然可以有一个长时间运行的服务,为我们的活动发送消息。 (更好的评价)在你的活动中使用传感器代码有什么意义?我知道你的活动永远不会暂停,但你仍应该有一个能够完成这项工作的服务。

+0

传感器代码发出一个localbroadcast事件以启动singleton中的方法。 因此,即使应用程序未关闭,对于长时间运行的活动(如传感器代码)使用服务也是更好的方法吗? – veryphatic 2012-07-21 23:53:56

0

我意识到这是一个旧帖子,但我通过经验了解到,Android保留随时关闭后台活动的权利(参考文献:onDestroy() docs)。如果你是“前台服务” - 这意味着你在通知栏中有一个图标 - 你会坚持更好:Foreground Services。这是这类应用的一个非常重要的概念。

相关问题