我一直在思考如何使用async/await在Android上产生响应式UI。我已经使用了一个简单的pub/sub包装服务来包装异步函数(这需要相当多的样板代码,但是它可以工作),但是我一直有一种感觉告诉我应该有更好的方法。
包装服务的需求源于android上的活动会因为配置更改(设备旋转、语言更改等)而“回收”(销毁和重新创建),所以如果我启动一个异步函数,等待回调可能会在销毁的活动上产生,并且可能会产生各种问题。
能否使异步后端在不使用编译器黑魔法的情况下意识到代码应该在另一个对象(新创建的活动)中启动?
原理:使用Xamarin共享iOS和Android之间的代码很容易,直到你遇到这个问题。如果解决/实现了这个问题,我看到了两个平台之间通用控制器的潜力。
编辑:我已经决定使用事件总线(TinyMessenger)解决这个问题,同时我也理解了@Servy提出的SynchronizationContext解决方案。
包装服务的需求源于android上的活动会因为配置更改(设备旋转、语言更改等)而“回收”(销毁和重新创建),所以如果我启动一个异步函数,等待回调可能会在销毁的活动上产生,并且可能会产生各种问题。
能否使异步后端在不使用编译器黑魔法的情况下意识到代码应该在另一个对象(新创建的活动)中启动?
原理:使用Xamarin共享iOS和Android之间的代码很容易,直到你遇到这个问题。如果解决/实现了这个问题,我看到了两个平台之间通用控制器的潜力。
编辑:我已经决定使用事件总线(TinyMessenger)解决这个问题,同时我也理解了@Servy提出的SynchronizationContext解决方案。