gpt4 book ai didi

android - 当第二个 Activity 方向改变时 registerForActivityResult 不起作用

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

我正在使用 ActivityResultLauncher 从 Activity A 调用 Activity B并在任务完成时设置 Activity B 的结果。如果方向没有改变,这将非常有效。问题是当我从 Activity B 更改方向然后设置结果时,然后 registerForActivityResult没有调用 Activity A。有人可以让我知道,可能是什么问题?
注意:如果我使用 startActivityForResult,我不会遇到这个问题和 onActivityResult .我将其更改为 ActivityResultLauncherstartActivityForResult变成了deprecated .
Activity 示例代码:

private lateinit var launcher: ActivityResultLauncher<Intent>

override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(layout)
setLauncherResult()
}

private fun setLauncherResult() {
launcher = registerForActivityResult(ActivityResultContracts.StartActivityForResult()) { result: ActivityResult ->
if (result.resultCode == Activity.RESULT_OK) {
//Do operations here
}
}

//On button click starting activity B using launcher
val intent = Intent(activityA, activityB)
launcher.launch(intent)

}
Activity B示例代码:
//setting result
val intent = Intent()
//set intent extras
setResult(Activity.RESULT_OK, intent)
finish()

最佳答案

您可以将值保存在 onSaveInstanceState() 中并在 onRestoreInstanceState() 中使用 setResult .

关于android - 当第二个 Activity 方向改变时 registerForActivityResult 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67294776/

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