在我们的 Android 应用程序中,我们使用第三方供应商提供聊天服务。我们需要为用户创建会话,然后登录以使用该服务,然后必须获取消息。所有这些都是单独的 HTTP 请求,需要在一个成功回调中调用。那么我该怎么做呢,如下所示。
ExternalService.createSession(param1, param2, new Callback<Session>() {
void onSuccess(Session session) {
session.login(new Callback<User> {
void onSuccess(User user) {
user.getMessages(new Callback<List<Messages>> {
void onSuccess(List<Messages> messages) {
// This is original place where everything is success
}
void onError(Error error) {
}
}
}
void onError(Error error) {
}
}
void onError(Error error) {
}
});
如果我在 中运行Activity
,它工作正常没有问题。如何做到这一点Service
?因为在Service
我也有问题运行AsyncTask
,抛出错误"Can't create handler inside thread that has not called Looper.prepare()"
。在调用并到达块结束Service
后退出。(我明白,这就是行为)。但是我怎么能不使用来实现呢?或者如果没有使用没有其他方法可以做,我怎么能在完成我需要的事情后停止它?这样做的最佳方法是什么?AsyncTask
handleAction
Service
Looper
Looper