Android 每个活动是否需要绑定到服务&;使用startService()创建时会发生什么
我有一个服务,应该保持与家庭自动化控制器(HAC)的持续连接。在应用程序的首选项中,我会让用户选择保持**与HAC的连接,或者在应用程序未使用时放弃与HAC的连接。我打算使用startService(),并查看首选项,看看是否有必要从服务中调用stopSelf() 我基本上有两个问题:Android 每个活动是否需要绑定到服务&;使用startService()创建时会发生什么,android,binding,service,android-activity,Android,Binding,Service,Android Activity,我有一个服务,应该保持与家庭自动化控制器(HAC)的持续连接。在应用程序的首选项中,我会让用户选择保持**与HAC的连接,或者在应用程序未使用时放弃与HAC的连接。我打算使用startService(),并查看首选项,看看是否有必要从服务中调用stopSelf() 我基本上有两个问题: 是否需要从应用程序中的每个活动绑定到服务?(我发现在SplashScreen活动启动并绑定到服务之后,onBind()似乎不会执行)。我甚至注释掉了一个活动对bindService()的调用,我仍然能够使用该服务
startService()
启动服务,则无需从应用程序中的任何活动绑定到该服务
我希望使用onBind()回调来验证该服务是否仍然具有到HAC的有效连接
特别是对于轻量级、只读、不太可能导致GC问题的连接状态之类的问题,我只会将其固定在静态数据成员中。现在,如果您需要一个比这更复杂的API,那么您将需要绑定,但是当涉及到配置更改(例如,屏幕旋转)时,绑定在身体的各个部位都是一个难题
如果我使用startService(),然后使用bindService();如果没有其他对象绑定,unBindService()会允许服务停止吗
否,startService()
将保留它,而不管unbindService()
另外,如果我用bindService()启动服务,然后调用startService();会发生什么
嗯……你能说得更具体些吗?我的意思是,我可以很自然地说,你的事件序列不会导致时空连续体的破裂,也不会导致我自发地长头发。:-)
我有一个服务,应该保持与家庭自动化控制器(HAC)的持续连接。在应用程序的首选项中,我会让用户选择保持**与HAC的连接,或者在应用程序未使用时放弃与HAC的连接。我打算使用startService(),并查看首选项,看看是否有必要从服务中调用stopSelf()
这是一种令人耳目一新的理性和明智的方法——让用户控制设备的使用方式。荣誉
是否需要从应用程序中的每个活动绑定到服务
如果使用startService()
启动服务,则无需从应用程序中的任何活动绑定到该服务
我希望使用onBind()回调来验证该服务是否仍然具有到HAC的有效连接
特别是对于轻量级、只读、不太可能导致GC问题的连接状态之类的问题,我只会将其固定在静态数据成员中。现在,如果您需要一个比这更复杂的API,那么您将需要绑定,但是当涉及到配置更改(例如,屏幕旋转)时,绑定在身体的各个部位都是一个难题
如果我使用startService(),然后使用bindService();如果没有其他对象绑定,unBindService()会允许服务停止吗
否,startService()
将保留它,而不管unbindService()
另外,如果我用bindService()启动服务,然后调用startService();会发生什么
嗯……你能说得更具体些吗?我的意思是,我可以很自然地说,你的事件序列不会导致时空连续体的破裂,也不会导致我自发地长头发。:-) 如果没有binder对象,我将静态地访问字段和方法?@tunneling:同样,对于像读取当前状态这样简单的事情,静态数据成员(例如int、String或enum)应该可以。如果你需要比这更复杂的东西,你需要使用绑定。更具体地说。。。我考虑同时使用bindService()[短期]和startService()[长期]启动服务。所以我只是想了解调用这些方法(以各种顺序)会如何影响服务生命周期的动态。@tunneling:顺序并不重要。如果在调用最后一个
unbindService()
时存在未完成的startService()
,则该服务将保持运行。如果没有,服务将停止。@Commonware:在服务中,我启动一个连接线程