我在写一个函数时有点卡住了。
我有一个函数调用另一个我写的应用程序,需要返回一个布尔值
@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)
}}
// ...
}
对于其他解决方案,您可能希望传递一个对象来存储值