我一直在观看Virgil Dobjanschi关于在Android上使用服务和内容提供商实施REST的正确方法的Google I / O演示。 http://code.google.com/events/io/2010/sessions/developing-RESTful-android-apps.html
基于视频,我做错了方法,考虑到正确方法的难度,这并不奇怪。无论如何,在视频中看到了承诺的土地,我有一个问题,想弄清楚如何到达那里。
我已将其中的大部分钉在上面,但是让我失望的一件事是Virgil在幻灯片中引用的Binder Callback(参见上面的链接),在第43页上它显示了第2步,即使用startService(intent)和step启动服务10使用Binder Callback返回状态信息。演示文稿中的任何地方都没有示例代码,这令人沮丧。有人谈论开源采购Twitter客户显然使用这种方法,但尚未发布,而且公告发布于4月份。
在视频中他说:“什么是活页夹回调?活页夹回调,将其视为在请求意图中传递的接口。”
我搜遍了所有地方,但未能找到任何显示如何将回调作为意图的一部分传递的文档或示例。我也无法找出传递回调的任何其他方式。
我认为他可能指的是绑定到服务并以这种方式实现回调。但是,他特指的是本地服务并使用strarSerice()而不是bindService()。此外,对于bindService(),如果活动被破坏而破坏了这个想法,服务将被销毁。解决方法是使用startService()然后使用bindService()并使服务保持运行一段时间。 bindService()的另一个问题是,在onServiceConnected()完成之前,回调是无法使用的,这会进一步使代码复杂化,因为无法在intent中传递操作指令,因为返回回调可能没有及时返回结果。
我只对使用推荐方法实现这一点感兴趣。任何人都可以了解一下Binder Callback是什么以及如何对其进行编码。与此相关的是,除了狂欢单身人士之外,有没有人知道服务助手会是什么样子?
这里的任何帮助将不胜感激。 谢谢 克里夫
答案 0 :(得分:14)
他可能指的是ResultReceiver
,或可能是createPendingResult()
。以下a pair sample projects证明了后者的使用。