我有多个活动扩展了基础FragmentActivity类。其中一项活动是运行需要始终可用的服务。现在当我在活动之间切换时,会调用Activitiy的onDestroy()
。我在这里取消绑定服务吗?我不希望解除绑定,因为我的服务正在运行,我希望它继续。
另一件事是我有一个从BLE(蓝牙低功耗)设备接收数据的接收器,该服务用于BLE连接。我是否取消注册接收器?我不想这样做,因为我希望这个接收器在后台继续。
编辑:
class MyActivity{
private final BroadcastReceiver mGattUpdateReceiver = new BroadcastReceiver() {
}
编辑:
在清单中:
<receiver android:name="MyReceiver" >
<intent-filter>
<action android:name="com.directed.carcookie.mGattUpdateReceiver" />
</intent-filter>
</receiver>
错误:导出的接收器不需要许可?
答案 0 :(得分:0)
我真的不知道你要用Service
完成什么,因为你没有提供大量信息,但是对于长期后台服务,为什么不使用IntentService?< / p>
如果您使用常规Service
您可能正在使用onBind()
方法。为什么不使用startService()?
例如:
Intent serviceIntent = new Intent(getActivity(), MyIntentService.class);
getActivity().startService(serviceIntent)
如果这两种方法不适合您,请提供更多信息
答案 1 :(得分:0)
如果您从Service
延长并使用Context.startService()
而希望自己的服务继续使用,只需在START_STICKY
中返回onStartCommand
即可。这样,只有在您明确呼叫stopService()
或stopSelf()
时,您的服务才会停止。
来自docs:
对于已启动的服务,他们可以决定运行另外两种主要操作模式,具体取决于它们从onStartCommand()返回的值:START_STICKY用于根据需要显式启动和停止的服务,而START_NOT_STICKY或START_REDELIVER_INTENT用于在处理发送给它们的任何命令时应保持运行的服务。