我对Android中的服务有疑问。我想知道为什么绑定服务并建立连接是必要的?我正在使用一个实现GPS模块的服务进行地理定位的应用程序。为了获取位置,我在类静态和公共方法静态中创建一个变量,从类外部调用,就是这样。 要从我在课堂上使用的GPS中检索位置:
Location mLocation = ServiceGPS.getLocation();
ServiceGPS类具有以下方法:
public static Location getLocation(){
return mLocation;
}
然后,为什么我需要使用绑定服务? 非常感谢您的帮助,并与我分享您的知识。
BR。 大卫。
答案 0 :(得分:2)
我想知道为什么必须绑定服务并与之建立连接?
这不是“必要的”。这并不意味着任意选择是个好主意。
例如,如果您的所有服务都是Location
,那么您应该从项目中删除该服务,并直接使用LocationManager
,因为不清楚您的服务添加了什么价值。不要仅仅因为情绪打击你而创建服务 - 有一个非常清楚地了解服务提供什么功能以及为什么它应该是服务,而不仅仅是某个活动的方法。
对于做真实事务的真实服务,服务代码必须运行 - 服务通常没有静态数据成员或方法,尽管可以。要使服务运行,必须调用startService()
或bindService()
。否则,永远不会调用服务的onCreate()
和亲属,就像onCreate()
一样,如果活动未启动,则永远不会调用活动的亲属。
是否使用startService()
(以及后来的stopService()
或stopSelf()
)或bindService()
(以及后来的unbindService()
)的选择取决于服务在做什么,应该做多久,等等。