在 androidx 中弃用了 OnActivityResult()
deprecated OnActivityResult() in androidx
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
我在我的项目中实现了注册的东西..比如.我通过注册 activity 创建了resultcontract
代替 startActivityForResult
我用 resultcontract.launch(intent)
代替并在 resultcontract
中得到结果(按照上面的链接)。现在我对打开 gps 的一项功能有疑问。
为此我们使用了
val rae = e as ResolvableApiException
rae.startResolutionForResult(context, GPS_REQUEST)
之前是startActivityForResult
,现在是startResolutionForResult
对如何获得 gps 请求的结果感到困惑(在代码中,我们得到的结果是
onActivityResult).我怎样才能用新的方式实现这个?
我找到了这个问题的解决方案,使用最近的 API 来开始一些结果。
因此,您几乎可以从 ResolvableApiException 获得解决方案,这是一个 PendingIntent,并使用 StartIntentSenderForResult 合同启动它,就像这样
合同:
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.
}
}
}
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
我在我的项目中实现了注册的东西..比如.我通过注册 activity 创建了resultcontract
代替 startActivityForResult
我用 resultcontract.launch(intent)
代替并在 resultcontract
中得到结果(按照上面的链接)。现在我对打开 gps 的一项功能有疑问。
为此我们使用了
val rae = e as ResolvableApiException
rae.startResolutionForResult(context, GPS_REQUEST)
之前是startActivityForResult
,现在是startResolutionForResult
对如何获得 gps 请求的结果感到困惑(在代码中,我们得到的结果是
onActivityResult).我怎样才能用新的方式实现这个?
我找到了这个问题的解决方案,使用最近的 API 来开始一些结果。
因此,您几乎可以从 ResolvableApiException 获得解决方案,这是一个 PendingIntent,并使用 StartIntentSenderForResult 合同启动它,就像这样
合同:
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.
}
}
}