所以我正在创建一个在主类/活动中有一个处理程序的应用程序。 我得到警告我应该声明它是静态的,以防止内存泄漏 所以,我读了一些解释这个问题的文章,我知道理解它(并将处理程序更改为静态并使用弱引用)。
但是,这是我的问题:
我需要处理程序来更改某些非静态变量(或调用一个执行该操作的方法)。我不想声明这些变量是静态的,因为它没有多大意义(它们应该属于主类的一个实例,而不属于类本身)。
我该怎么做?
我已经看到了一段代码,其中有人创建了主类的实例,然后使用它来更改非静态变量的值或调用非静态方法。 这对我来说似乎很奇怪,因为在创建新实例并使用该实例中的vars时,我的程序怎么能知道我在谈论同样的问题" myInt"或者" myString"就像我之前在节目中一样。
请原谅我,如果这没有意义,或者我没有解释清楚,我还是新手
答案 0 :(得分:0)
您可以在静态变量中保留对主类的引用(假设只有一个主类的实例),否则您可以将对主类的引用作为参数传递给静态方法
你是不对的,你不想在静态方法中实例化一个新的主类 - 这不会影响主类的任何其他副本(除非你只是改变副本的静态方法/属性,在没有主类实例的情况下你应该能够做到这一点的情况)