可以异步/等待了解Android活动生命周期吗?

我一直想知道使用async / await在Android上生成响应式UI。 我一直在使用一个简单的发布/子包装服务围绕异步函数(这是很多样板,但工作)但我有这个痒在我身边,告诉我应该有一个更好的方法。

对包装器服务的需求源于android上的活动在配置更改(设备轮换,语言更改……)上被“回收”(销毁和重新创建)这一事实,因此,如果我触发异步function,则可能会生成await回调被破坏的活动和各种各样的坏事可能源于此。

异步后端是否可以知道代码应该在不同的对象(新创建的活动)中启动,而不需要编译器黑暗魔法?

理由 :使用Xamarin在iOS和Android之间共享代码都很容易,直到你遇到这个问题。 如果以某种方式解决/实现,我看到两个平台之间的共同控制器的潜力。

编辑:我决定用事件总线(TinyMessenger)解决这个问题,同时我理解@Servy提出的SynchronizationContext解决方案

当然,它专门设计用于做到这一点。 每当你点击await它将检查SynchronizationContext.Current的值,它将继续发布到该上下文。 如果您希望特定回调到特定上下文,您只需要将当前上下文设置为适当编组回调的SynchronizationContext对象…但是您需要对它们进行封送处理。