提问人:hata 提问时间:9/12/2023 最后编辑:hata 更新时间:9/13/2023 访问量:41
关于 Play 游戏服务排行榜的官方文档使用了已弃用的 startActivityForResult
The official document about Leaderboards of Play Games Services uses deprecated startActivityForResult
问:
以下代码来自 Google 关于 Play 游戏服务排行榜的官方文档(转换为 Kotlin):
private fun showLeaderboard() {
PlayGames.getLeaderboardsClient(this).allLeaderboardsIntent
.addOnSuccessListener { intent ->
startActivityForResult(intent, 0)
}
}
Android Studio 说:
“startActivityForResult(Intent!, Int): Unit”已弃用。在 Java 中不推荐使用
我该如何解决这个问题?
答:
1赞
hata
9/12/2023
#1
您可以使用 ActivityResultContracts
而不是 deprecated 。startActivityForResult
private val leaderboardsResultLauncher = registerForActivityResult(
ActivityResultContracts.StartActivityForResult()
) { /* do nothing */ }
private fun showLeaderboard() {
PlayGames.getLeaderboardsClient(this).allLeaderboardsIntent
.addOnSuccessListener { intent ->
leaderboardsResultLauncher.launch(intent)
}
}
排行榜文档说:
请注意,即使没有返回任何结果,我们也必须使用 startActivityForResult,以便 API 可以获取 调用包。
因此,在这种情况下(至于排行榜),您与 .ActivityResultContracts
评论