gpt4 book ai didi

android - ActivityResultContracts.StartActivityForResult() 结果只调用一次

转载 作者:行者123 更新时间:2023-12-04 23:44:20 25 4
gpt4 key购买 nike

使用 androids 新的 Activity 结果 API 时,回调只为我触发一次。

class MyFragment : Fragment() {
private val intentLauncher = registerForActivityResult(ActivityResultContracts.StartActivityForResult()) { result: ActivityResult ->
if (result.resultCode == Activity.RESULT_OK) {
...
}
}
}

private fun onClick(id: Long) {
val intent = Intent(context, MyActivity::class.java)
intent.putExtra(MyActivity.ID_EXTRA, id)
intentLauncher.launch(intent)
}
在第一次单击 fragment 时启动 Activity ,并在 Activity 完成时正确传回结果。但是,当 fragment 再次启动 Activity 时, Activity 会设置结果并调用完成。但是 fragment 中的结果回调不会再次触发。
还注意到我不需要包括:
implementation 'androidx.activity:activity-ktx:1.4.0'
implementation 'androidx.fragment:fragment-ktx:1.4.1'
新的 Activity 结果 API 是否带有其他一些依赖项?想知道我正在使用的版本是否还有其他奇怪的事情发生?
编辑:
需要注意的是,这仅在使用 fragment 中的新 Activity 结果 api 启动新 Activity 时才会发生。从 Activity 启动时,我看不到相同的行为。对于 fragment ,我需要做些什么不同的事情吗?

最佳答案

只需添加 launchIntent.setFlags(0);之前 startActivityForResult() .
This引用可以帮助你。

关于android - ActivityResultContracts.StartActivityForResult() 结果只调用一次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71666846/

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