从LauncherForActivityResult返回结果



我在写一个函数时有点卡住了。

我有一个函数调用另一个我写的应用程序,需要返回一个布尔值

@Composable
fun callApp(
//someparams
) : Boolean {
//some code
}

在一些逻辑之后,我通过:

启动我的应用程序
val startForResult =
rememberLauncherForActivityResult(ActivityResultContracts.StartActivityForResult()) { result: ActivityResult ->
if (result.resultCode == Activity.RESULT_OK) {
//here i need to set the return value of "callApp"
}}
并通过 触发
startForResult.launch(launchIntent)

问题是,我看不出一种方法,我可以返回函数"callApp"在结果中生成的布尔值。请注意,我不能从代码本身外部使用sharedPref/realm/任何数据结构。

你能帮我理解这个吗?

最好只是做一个回调来完成意图,而不是从composable返回值/将其存储在某处

@Composable
fun callApp(
//someparams,
onIntentFinished: (Boolean) -> Unit
) {
// ...
val startForResult =
rememberLauncherForActivityResult(ActivityResultContracts.StartActivityForResult()) { result: ActivityResult ->
if (result.resultCode == Activity.RESULT_OK) {
//here i need to set the return value of "callApp"
onIntentFinished(true)
}}
// ...
}

对于其他解决方案,您可能希望传递一个对象来存储值

相关内容

  • 没有找到相关文章

最新更新