我一直在观看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)启动服务,第10步返回使用Binder回调的状态信息.演示文稿中的任何地方都没有示例代码,这是相当令人沮丧的.有人谈论开源采购Twitter客户显然使用这种方法,但尚未发布,并且公告发布于4月份.
在视频中他说:"什么是活页夹回调?活页夹回调,将其视为在请求意图中传递的接口."
我已经搜遍了所有地方,但未能找到任何显示如何将回调作为意图的一部分传递的文档或示例.我也无法找出传递回调的任何其他方式.
我认为他可能指的是绑定到服务并以这种方式实现回调.但是,他特指的是本地服务并使用strarSerice()而不是bindService().此外,对于bindService(),如果活动被破坏而破坏了这个想法,服务将被销毁.解决方法是使用startService()然后使用bindService()并使服务保持运行一段时间.bindService()的另一个问题是,在onServiceConnected()完成之前,回调是无法使用的,这会进一步使代码复杂化,因为无法在intent中传递操作指令,因为返回回调可能没有及时返回结果.
我只对使用推荐的方法实现这一点感兴趣.任何人都可以了解一下Binder Callback是什么以及如何对其进行编码.与此相关的是,除了狂欢单身人士之外,有谁知道服务助手会是什么样子?
这里的任何帮助将不胜感激.谢谢克莱夫
他可能一直指的是ResultReceiver
,或者可能createPendingResult()
.这里是一对的示例项目演示使用后者.