有关 Play 游戏服务排行榜的官方文档使用已弃用的 startActivityForResult

问题描述 投票:0回答:1

以下代码来自Google关于Play游戏服务排行榜的官方文档(已转换为Kotlin):

private fun showLeaderboard() {
    PlayGames.getLeaderboardsClient(this).allLeaderboardsIntent
        .addOnSuccessListener { intent ->
            startActivityForResult(intent, 0)
        }
}

Android Studio 说:

“startActivityForResult(Intent, int): Unit”已弃用。

我该如何解决这个问题?

android google-play-games startactivityforresult
1个回答
0
投票

您可以使用

ActivityResultContracts
代替已弃用的
startActivityForResult

private val leaderboardsResultLauncher = registerForActivityResult(
    ActivityResultContracts.StartActivityForResult()
) { /* do nothing */ }

private fun showLeaderboard() {
    PlayGames.getLeaderboardsClient(this).allLeaderboardsIntent
        .addOnSuccessListener { intent ->
            leaderboardsResultLauncher.launch(intent)
        }
}

排行榜文件说:

注意,即使没有返回结果,我们也必须使用 startActivityForResult 以便 API 可以获得该活动的身份 调用包。

所以,你的结果与

ActivityResultContracts
无关。

© www.soinside.com 2019 - 2024. All rights reserved.