Play Games Services排行榜文档代码startActivityForResult已弃用如何修复?
修复Play Games Services排行榜startActivityForResult弃用问题
解决方案:使用Activity Result API替代
Android官方已弃用startActivityForResult,推荐使用Activity Result API处理启动Activity的结果回调,具体步骤如下:
- 定义ActivityResultLauncher成员变量
在你的Activity类中添加成员变量,用于处理排行榜页面的返回结果:
private lateinit var leaderboardLauncher: ActivityResultLauncher<Intent>
- 初始化Launcher
在Activity的onCreate方法中注册Launcher,可根据需求编写回调逻辑(无需处理返回结果时,回调可简化):
override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) // 其他初始化代码... leaderboardLauncher = registerForActivityResult(ActivityResultContracts.StartActivityForResult()) { result -> // 可选:处理返回结果 if (result.resultCode == Activity.RESULT_OK) { // 例如处理用户在排行榜页面的操作结果 } } }
- 修改showLeaderboard方法
替换原startActivityForResult调用,改用Launcher的launch方法:
private fun showLeaderboard() { PlayGames.getLeaderboardsClient(this).allLeaderboardsIntent .addOnSuccessListener { intent -> leaderboardLauncher.launch(intent) } }
说明
Activity Result API解决了传统startActivityForResult存在的requestCode冲突、生命周期管理混乱等问题,是当前Android官方推荐的标准写法。若无需处理排行榜页面的返回结果,回调部分可仅保留空实现。
内容的提问来源于stack exchange,提问作者hata
相关产品推荐
相关产品推荐

