我有一个关于Android服务的理解问题。我有一个执行后台http操作的服务和一个应该显示这些http操作当前状态的Activity。Android服务onBind - > onStart
所以我实现了Binder接口等等。我可以调用bindService方法,并且我的ServiceConnnection的onServiceConnected正在调用。但据我所知,onBind不会调用onStartCommand(),所以服务的onStart()永远不会被调用。
那么如何调用服务类的onStart()方法并开始我的操作。或者,当我还希望在活动和服务之间进行绑定时,如何在服务中启动我的操作的最佳方式。
后者是我现在所做的。这些操作现在由binder对象的方法启动。这是“好”的设计还是有更好的解决方案?无论如何,我们都需要 thx。 – Masala 2010-04-16 15:52:17
这听起来很好。 – CommonsWare 2010-04-16 16:22:42
取决于你想达到的目标。如果即使在后台也应该通过HTTP操作,使用绑定服务并不安全。当最后一个客户端解绑时,绑定服务将被销毁 - 如果在Activity放置在后台时不解除绑定服务,则会泄露上下文。 因此,如果您希望HTTP通话在电话中存活,那么您应该同时呼叫绑定并从您的活动开始。 – 2013-07-04 18:04:39