gpt4 book ai didi

c# - async/await 是否可以感知 Android Activity 生命周期?

转载 作者:太空狗 更新时间:2023-10-29 13:23:44 26 4
gpt4 key购买 nike

我一直想知道如何使用 async/await 在 Android 上生成响应式 UI。我一直在围绕异步函数使用简单的 pub/sub 包装器服务(这是很多样板,但有效)但我这边有这种感觉,告诉我应该有更好的方法。

包装器服务的需求源于这样一个事实,即 android 上的 Activity 在配置更改(设备旋转、语言更改...)时得到“回收”(销毁和重新创建),所以如果我触发异步函数,等待回调可能在被破坏的 Activity 上生产,各种不良事件都可能源于此。

异步后端能否以某种方式意识到代码应该在不同的对象(新创建的 Activity )中触发而无需编译器黑魔法?

基本原理:在您遇到此问题之前,使用 Xamarin 在 iOS 和 Android 之间共享代码非常方便。如果这能以某种方式解决/实现,我看到了两个平台之间通用 Controller 的潜力。

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

最佳答案

当然,它是专门为执行此操作而设计的。每当您点击 await 时,它都会检查 SynchronizationContext.Current 的值,并将继续发布到该上下文。如果您想要一个特定的回调到特定的上下文,您只需将当前上下文设置为一个 SynchronizationContext 对象,该对象可以适本地编码您的回调...但是您需要对它们进行编码。

关于c# - async/await 是否可以感知 Android Activity 生命周期?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24637734/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com