【发布时间】:2014-07-08 17:08:15
【问题描述】:
我一直想知道如何使用 async/await 在 Android 上生成响应式 UI。我一直在围绕异步函数使用一个简单的 pub/sub 包装服务(这是相当多的样板,但可以工作),但我有这种痒,告诉我应该有更好的方法。
对包装服务的需求源于这样一个事实,即 android 上的活动在配置更改(设备轮换、语言更改...)时被“回收”(销毁并重新创建),所以如果我触发异步函数,等待回调可能在被破坏的活动上产生,各种各样的坏事都可能由此产生。
能否以某种方式让异步后端意识到代码应该在不同的对象(新创建的活动)中触发,而无需编译器黑魔法?
基本原理:使用 Xamarin 在 iOS 和 Android 之间共享代码非常简单,除非您遇到此问题。如果这能以某种方式解决/实现,我看到了两个平台之间通用控制器的潜力。
编辑:
我决定使用事件总线(TinyMessenger)来解决这个问题,同时我了解@Servy 提出的SynchronizationContext 解决方案
【问题讨论】:
-
确实是个有趣的问题。
标签: c# android asynchronous xamarin