到目前为止,为了实现某些功能目标,我已经将我的应用程序的主要活动对象作为参数分发给其他类的构造函数,然后将其存储为私有变量。
我这样做,不是因为我需要访问整个活动,而是因为我需要访问:
它有效,但我一直觉得我在正确的OOD方面做了一些根本性的错误。
特别是关于第1点:
由于这些原因,我尽量避免尽可能将活动作为参数传递给构造函数,但在Android开发环境中,我发现它更难做,原因我还没有完全理解。
我的问题:
答案 0 :(得分:2)
一般来说,您应该避免保留对活动的引用。如果您确实需要,请将WeakReference存储到您的活动中。这是为了避免内存泄漏。
正如您所说,通过传递对活动的引用,您可以在另一个对象和您的活动类之间引入依赖关系。给出一些示例代码,以便我们举例说明如何重构它。
答案 1 :(得分:2)
我发现最好在单独的Util类中保留多个类所需的值。这样,您就不必将主Activity传递给其他类。
另一种方法是根据需要将主Activity作为参数的必需值传递给其他类。
关于你的第二个问题,我想不出你必须通过主要活动然后在其上调用方法的任何理由。