在示例中显示的这种回调(观察者模式)在服务和活动之间不起作用。当您从类A 创建了 类B 的实例 并希望将回调从B发送到A
时,请使用观察者模式。
关于服务和活动,情况完全不同。AFAICT,如果您
Activity要从回调
Service,最好的方法是使用
ResultReceiver。关于以下内容有很多有趣的事情
ResultReceiver:
- 它的构造函数接收一个
Handler
(必须在活动内部创建的),它将允许您从服务中更改UI。 - 它实现了,
Parcelable
因此您可以ResultReceiver
在Intent
启动服务所用的其他功能中添加参考。 - 它的
onReceive
方法有一个结果码整数,它使您可以生成不同类型的回调(就像您的回调接口有很多方法一样)。此外,它还会收到一个Bundle
,您可以用来放置所有结果数据。
另一方面,如果您要执行 回调
(不确定在这种情况下该术语是否正确),从您
Activity到您
Service,我想您将必须发送广播消息或类似的消息。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)