gpt4 book ai didi

android - 在 androidx 中弃用 OnActivityResult()

转载 作者:行者123 更新时间:2023-12-04 23:38:11 35 4
gpt4 key购买 nike

OnActivityResult()在 androidx 中已弃用。我从以下链接中获取了引用

  • https://developer.android.com/training/basics/intents/result
  • https://developer.android.com/jetpack/androidx/releases/activity
  • https://proandroiddev.com/is-onactivityresult-deprecated-in-activity-results-api-lets-deep-dive-into-it-302d5cf6edd

  • 我在我的项目中实现了注册的东西 ..like 。我通过注册 Activity 创建了结果契约(Contract)
    代替 startActivityForResult我替换为 resultcontract.launch(intent)并在 resultcontract 中获得结果(按照上面的链接)。现在我对打开 gps 的一项功能表示怀疑。
    为此,我们使用了
    val rae = e as ResolvableApiException
    rae.startResolutionForResult(context, GPS_REQUEST)
    早些时候是 startActivityForResult , 现在是 startResolutionForResult对如何获取 gps 请求的结果感到困惑(在代码中,我们得到的结果是
    onActivityResult)。我怎样才能用新的方式实现这个?

    最佳答案

    我找到了解决这个问题的方法,使用最近的 API 来开始一些结果。
    因此,您几乎可以从 ResolvableApiException 获得分辨率。 ,这是一个 PendingIntent , 并以 StartIntentSenderForResult 开头契约(Contract),像这样
    契约(Contract):

    private val resolutionForResult = registerForActivityResult(
    ActivityResultContracts.StartIntentSenderForResult()
    ) { activityResult ->

    // do whatever you want with activity result...

    }
    如何开始:
    .addOnFailureListener { exception ->
    if (exception is ResolvableApiException) {
    try {
    val intentSenderRequest = IntentSenderRequest
    .Builder(exception.resolution).build()
    resolutionForResult.launch(intentSenderRequest)
    } catch (throwable: Throwable) {
    // Ignore the error.
    }
    }
    }

    关于android - 在 androidx 中弃用 OnActivityResult(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65158308/

    35 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com