我想,并希望这不是老惯了的问题。 这就是我想要的:如何启动并绑定到服务?
- 启动与setForeground()设置一个服务S的活性的(即与永久通知服务);
- A绑定到S以公共方法控制它;
- 用户关闭A(onDestroy),但该服务必须仍在运行;
- 用户打开A,A发现服务S已经开始并且简单地重新绑定到它。
我该怎么做?
我想,并希望这不是老惯了的问题。 这就是我想要的:如何启动并绑定到服务?
我该怎么做?
我该怎么做?
第4步是相同的步骤#1和步骤#2,所以你只是做同样的事情,在这两种情况下:通话双方startService()
和bindService()
。在你的情况下,你的startForeground()
工作onCreate()
服务(而不是onStartCommand()
),因为你不需要多次(一个startService()
呼叫)。并且务必明确规划何时您将通过stopService()
或stopSelf()
— only have the service running when it is actively delivering value to the user停止该服务。
是的,我的错。我删除了我的意见,以避免您认真阅读(因为我现在已经解决),但你已经回答了。无论如何,我错误地认为onBind()方法再次被调用。现在,它的工作,谢谢。 – VanDir
如果您在服务已经运行时调用startService,则什么都不会发生。服务会自动创建为单例,因此框架将只处理1个实例。
在您的服务的onCreate()中,请致电startForeground(int id, Notification notif)
。
正如你将它设置为startForeground,摧毁一个绑定到该服务不会破坏它的活动,所以没有问题存在。
现在只需绑定到服务在您的活动的onResume,并在onPause或解除绑定的onStop(无论最适合你的,都可以在不同的设置使用)。
您是否阅读过文档? http://developer.android.com/guide/components/bound-services.html – FrankMonza