如何像PendingResult.await一样同步运行新的gms Task对象?

时间:2018-08-24 02:05:44

标签: google-play-services

我在await上没有看到任何com.google.android.gms.tasks.Task同步api。我想念什么吗?我正在尝试迁移以在Play服务中使用新的* Client类。我已经将代码设计为在另一个线程中运行并使用PendingResult.await。我的代码是这样的:

val pendingResult = Auth.GoogleSignInApi.silentSignIn(TwinkleApplication.instance.gapiClient)
val account = pendingResult.await(10, TimeUnit.SECONDS)

我希望使用它,但是不知道如何继续。

    val signin = GoogleSignIn.getClient(ctx, Global.getGSO())
    val task = signin.silentSignIn()

1 个答案:

答案 0 :(得分:2)

Tasks类包括静态await方法-在Java中,我这样做:

GoogleSignInClient googleSignInClient = GoogleSignIn.getClient(context, gso);

Task<GoogleSignInAccount> task = googleSignInClient.silentSignIn();

try {
    GoogleSignInAccount account = Tasks.await(task);
    ...
} catch (ExecutionException e) {
    // task failed
} catch (InterruptedException e) {
    // an interrupt occurred while waiting for the task to finish
}