我有一个Flutter应用,可以使用methodchannel调用Java插件。
我试图了解线程模型和异步行为。所以订单是这样的... UI事件处理程序调用await methodchannel.invoke(“ Foo”,params)。将控制转移到Java方法调用处理程序。我在那儿回复。成功解除了对飞镖的等待。等待返回,并且UI事件处理程序抖动返回。
在Java插件中,在result.sucess之后,我继续进行更多工作。再说2秒钟。
问题是(我的问题)在那2秒钟内,即使flutter事件处理程序已在2秒钟前返回,但dart主线程/ UI被阻止了?这是为什么?从我的logcat中可以看到dart和Java代码在两个单独的线程中运行。感谢您的回答。