服务不应该当手机正在睡觉,或活动(用于启动服务)停止不运行(Service shouldn'

2019-09-26 10:37发布

我想运行一个服务来收集加速度传感器的信息,当手机处于睡眠或活动(用于启动服务)未运行,它不应该停止。 我要送启动和停止命令,从菜单中活动的服务。
目前我使用的是捆绑服务在活动的过程一样,但问题是,在活动被关闭,它就会立即关闭(回车键按下)。

我想知道如果我使用一个单独的进程,即使没有捆绑的活动将恢复(当活动被关闭)。

如果不是,它的服务模式应该怎么选择呢?

Answer 1:

您可能正在寻找startService而不是bindService。

http://developer.android.com/reference/android/content/Context.html#startService%28android.content.Intent%29

然而,即使有startService,没有保证的服务将保持运行“永远”和“总是”。

警告,下面的选项会大量消耗电池。

您可以增加该服务将不会改变优先startforeground(需要通知)被停止的机会。

当屏幕处于关闭状态,只有这样才能保持服务“活着,”是使用报警管理与RTC_WAKEUP或ELAPSED_REALTIME_WAKEUP时间表。

较少的电池...

但实事求是地讲,没有startForeground,只是使用普通的RTC或ELAPSED_REALTIME报警时间表,您的服务将运行的大部分时间。



Answer 2:

你可以在你的应用程序相同的过程中创建一个服务,即使你的活动全部关闭,应用程序仍能正常工作,因为你的服务还活着,直到调用stopservice(当它被系统杀死系统会自动重新启动服务)。 如果您的服务执行与活动复杂的通信,我认为你应该使用远程信使服务。 在服务的运行,就可以绑定到服务来发送和接收服务和活动之间的数据。 对于服务的更多信息和通信服务,你可以参考这里



文章来源: Service shouldn't stop when the phone is sleeping, or the activity (for starting the service) is not running