我有一个产生一个Thread的服务,它做了一些 与云服务握手。当线程完成时, 它通过显式解除引用方法来通知服务 来自服务的一个实例。
问题:在Android模型中,这是否可以接受? 如果没有,关于衍生线程的最佳实践是什么 通知父服务?
注意:我使用的是Lollipop(Android 5.0,API Level 21)。
答案 0 :(得分:0)
这是一个粗略的想法(借鉴了其中一个在线的例子) Android书籍):
public class MyService extends Service {
private static final String TOKEN = "msg-token";
// XXX Implement Service methods here.
private void notifyService(Object someObject) {
// XXX Process result from cloud service interaction.
}
private class MyCloudClient implements Runnable {
@Override
public void run() {
// XXX Interact with cloud service here.
Bundle msgInfo = new Bundle();
msgInfo.putSerializable(TOKEN, msgInfo);
Message msg = Message.obtain();
msg.setData(msgInfo);
MyService.this.msgHandler.sendMessage(msg);
}
}
private Handler msgHandler = new Handler() {
@Override
public void handleMessage(Message msg) {
Bundle msgInfo = msg.getData();
Object someObject = msgInfo.getSerializable(TOKEN);
MyService.this.notifyService(someObject);
}
};
}