android - startActivityForResult(android.content.Intent, int)' 已弃用

标签 android kotlin

startActivityForResult(intent,3021) 
我已经使用了很长时间了,现在不推荐使用这种方法了吗?

最佳答案

它确实已被弃用。我试图找出新的出路,并想在这里分享。
现在而不是覆盖 onActivityResult对于所有回调并检查我们的请求代码,我们可以使用 registerForActivityResult 分别注册每个回调接受 ActivityResultContracts . IMO 这是一种比以前更好的方法。
以下是为结果启动 Activity 的示例:

val previewRequest =
           registerForActivityResult(ActivityResultContracts.StartActivityForResult()) {
    if (it.resultCode == RESULT_OK) {
        val list = it.data
        // do whatever with the data in the callback
    }
}
现在代替 StartActivityForResult我们用
val intent = Intent(this, PreviewFullscreenActivity::class.java)
intent.putStringArrayListExtra(AppConstants.PARAMS.IMAGE_URIS, list)
previewRequest.launch(intent)

关于android - startActivityForResult(android.content.Intent, int)' 已弃用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63435989/

相关文章:

android - Android 上简单游戏的设计决策/建议

java - 如何在android中将帧缓冲区发送到surfaceflinger?

android - 无法创建类的实例 - ViewModel

android - 如何在 Android Studio 中找到最新版本的 Kotlin

Android 流行动画

java - 从系统应用程序访问/数据文件夹

android - Android 中基于 1 位的位图

android - 如何从 JSONArray 创建字符串列表?

android - 角球选手videoview kotlin

android - Kotlin Flow - 有没有类似于 LiveData 的 emitSource 的东西?