我的TcpClient
中有两种方法。第一个是startListener
,然后我connect
。他们都返回void
。
在我当前的TcpClient
实施中,应用程序崩溃,如果我startListener
然后connect
就在它之后(我猜它们之间需要一段时间?)。实施时间为here,来自SimpleTCPLibrary(他startListener
onStart()
,并且连接按钮触发connect
)
我想做的是做startListener
,什么时候成功完成 - >做connect
。我无法使用 BoltsFramework&#39> continueWith
或onSuccess
找到显示如何执行此操作的示例。
那里有没有例子?
答案 0 :(得分:1)
您可以随时尝试
Task.delay(200).continueWith(new Continuation<Void, Object>() {
@Override
public Object then(Task<Void> task) throws Exception {
... connect();
return null;
}
});
答案 1 :(得分:1)
Task.callInBackground(new Callable<Void>() { //or `Task.call` for synchronous
@Override
public Void call()
throws Exception {
/*... startListener */
return null;
}
}).continueWithTask(new Continuation<Void, Task<Void>>() {
@Override
public Task<Void> then(Task<Void> ignored)
throws Exception {
return Task.delay(200);
}
}).continueWith(new Continuation<Void, Void>() {
@Override
public Void then(Task<Void> ignored)
throws Exception {
/*... connect */
return null;
}
});
或与lambdas:
Task.call(() -> { TcpClient.startListener(); return null; })
.continueWithTask(ignored -> Task.delay(200))
.continueWith(ignored -> { TcpClient.connect(); return null; });