我认为存在的问题是必须保证在您自己的activity的OnCreate()完成之前调用registerForActivityResult()。很明显,OnCreate()不是一个挂起函数,因此我不能将registerForActivityResult()和ActivityResultLauncher.launch()包装在suspendCoroutine{}中以等待回调,因为我无法从OnCreate()启动suspendCoroutine并等待其完成后才让OnCreate()完成...这是我的看法。
我曾经认为使用runBlocking{}可以实现这一点,但我发现在OnCreate()内调用runBlocking会导致应用程序永远挂起,而且永远不会运行runBlocking{}块中的代码。
所以我的问题是,我是否使用了正确的方法实现 runBlocking{},或者是否有其他使用registerForActivityResult()在协程中的方法,或者根本不可能。
我曾经认为使用runBlocking{}可以实现这一点,但我发现在OnCreate()内调用runBlocking会导致应用程序永远挂起,而且永远不会运行runBlocking{}块中的代码。
所以我的问题是,我是否使用了正确的方法实现 runBlocking{},或者是否有其他使用registerForActivityResult()在协程中的方法,或者根本不可能。
runBlocking(IO) {}
吗?这样可以阻塞IO线程而不是UI线程。 - Stachu