1

所以我正在制作一个在主类/活动中有一个处理程序的应用程序。我收到警告我应该将其声明为静态以防止内存泄漏。
因此,我阅读了一些解释该问题的文章,并且我知道理解它(并将处理程序更改为静态并使用弱引用)。

但是,我的问题来了:
我需要处理程序来更改某些非静态变量(或调用执行此操作的方法)。我不想将这些变量声明为静态的,因为它没有多大意义(它们应该属于主类的一个实例,而不是属于类本身)。

我该怎么做?

我已经看过一段代码,其中有人创建了主类的一个实例,然后用它来更改非静态变量的值或调用非静态方法。这对我来说似乎很奇怪,因为在创建该新实例并使用该实例中的 var 时,我的程序怎么会知道我在谈论与程序早期相同的“myInt”或“myString”。

如果这没有意义或者我没有很好地解释它,请原谅我,我还是新手

4

1 回答 1

0

您可以在静态变量中保留对主类的引用(假设只有一个主类实例),或者您可以将对主类的引用作为参数传递给静态方法

你是正确的,你不想在静态方法中实例化一个新的主类 - 这不会影响主类的任何其他副本(除非你只是更改副本的静态方法/属性,在这种情况下你应该能够在没有主类实例的情况下做到这一点)

于 2013-04-23T18:11:45.540 回答