OnActivityResult()
在 androidx 中已弃用。我从下面的链接中参考了
- https://developer.android.com/training/basics/intents/result https://developer.android.com/training/basics/intents/result
- https://developer.android.com/jetpack/androidx/releases/activity https://developer.android.com/jetpack/androidx/releases/activity
- https://proandroiddev.com/is-onactivityresult-deprecated-in-activity-results-api-lets-deep-dive-into-it-302d5cf6edd https://proandroiddev.com/is-onactivityresult-deprecated-in-activity-results-api-lets-deep-dive-into-it-302d5cf6edd
我在我的项目中实现了注册的事情..就像。我通过注册活动创建了结果合同
代替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.
}
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)