gpt4 book ai didi

c# - 对前台 Activity 有一个静态引用很好吗?

转载 作者:行者123 更新时间:2023-11-30 02:20:33 26 4
gpt4 key购买 nike

对前台 Activity 进行静态引用是好的做法吗?例如:

public static Activity currentActivity = null;

这个问题很简单,但我找不到太多相关信息。我正在做 Xamarin Android - 在 C# 中编写 android 应用程序,所以我有很多任务(后台线程),我想做一个对话框,但我没有引用任何前台 Activity 。

所以我现在正在做的是对它有一个静态引用,在 activitylifecyclecallbacks 中设置和取消设置引用,以便在每次 Activity 时触发它,然后在引用的 setter 周围放置一个互斥锁,以确保在极其奇怪的条件下的安全。

这对我来说似乎有点骇人听闻,但获取当前 Activity 确实非常困难,而且我正在处理的方法是由 IocContainers 在所有 WPF、Android、iOS 应用程序中使用的接口(interface)定义的,所以我真的无法传递 Activity 因为我无法更改方法签名。

最佳答案

对我来说似乎是个坏主意:

  • 大量额外代码来管理该静态变量的状态
  • 维护开发人员在调试时会讨厌你

为什么不让后台任务触发事件?然后,让前台 Activity 订阅事件并创建对话框。这样,如果没有前台 Activity (或前台 Activity 不关心),则什么也不会发生。您会将用于管理静态的代码与用于设置事件处理程序的代码交换,但这可能更易于维护/调试。

关于c# - 对前台 Activity 有一个静态引用很好吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28595754/

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