为了能够绑定每个服务,我将有几个,我的活动中是否需要几个私有ServiceConnections,如下所示?
/** defines callbacks for service binding,passed to bindService() */private ServiceConnection mConnection = new ServiceConnection() { @OverrIDe public voID onServiceConnected(Componentname classname,IBinder service) { // We've bound to LocalService,cast the IBinder and get LocalService instance GPSLocalBinder gpsBinder = (GPSLocalBinder) service; PhotolocalBinder photoBinder = (PhotolocalBinder) service; gpsService = gpsBinder.getService(); photoService = photoBinder.getService(); mGpsBound = true; mPhotoBound = true; } @OverrIDe public voID onServicedisconnected(Componentname arg0) { mGpsBound = false; mPhotoBound = false; }};
或者,我是否需要在我的活动和服务之间使用经理类,以便更好地使用和理解有界服务?
解决方法Is there a need to have one serviceConnection for each androID
service?
我假设您在询问是否可以为多个服务重用相同的serviceConnection.每个服务连接都不需要一个,但这可能是最好的方法.我在你的代码中看到了这个
GPSLocalBinder gpsBinder = (GPSLocalBinder) service; PhotolocalBinder photoBinder = (PhotolocalBinder) service; gpsService = gpsBinder.getService(); photoService = photoBinder.getService();
这非常令人困惑……这似乎可以将服务转换为两种不同的服务!
您将意识到onServiceConnected回调是大多数魔术发生的地方,您(活动)最终可以获得指向您的服务的指针并开始调用方法并与您的服务进行交互.如果要为不同的服务重用相同的serviceConnection,则需要找出IBinder对象所属的自定义子类,然后进行适当的转换. Ufff,太麻烦了.我建议每个服务有一个serviceConnection.
Or do i need a manager class between my activity and the services that
provIDes better usage and understanding of the bounded services?
对于这个和你的第一个问题,你可以做任何你想做的事.没有比其他方法更好的方法(恕我直言),最好的方法是你更了解的方法,让你感觉更舒服.
总结以上是内存溢出为你收集整理的android – 每个Service绑定是否需要一个ServiceConnection?全部内容,希望文章能够帮你解决android – 每个Service绑定是否需要一个ServiceConnection?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)