所以,我正在制作一个应用程序,它在主类/活动中有一个处理程序。 我得到了警告,我应该声明它是静态的,以防止内存泄漏。
因此,我阅读了一些解释问题的文章,并且我知道理解它(并将处理程序更改为静态并使用弱引用)。从静态方法更改非静态值
但是,这里来了我的问题:
我需要处理程序来更改某些非静态变量(或调用一个方法)。我不想声明这些变量是静态的,因为它没有多大意义(它们应该属于主类的实例,而不属于类本身)。
我该怎么做?
我已经看到一段代码,其中有人创建了一个主类的实例,然后用它来改变非静态变量的值或调用非静态方法。 对我来说这似乎很奇怪,因为当创建新实例并使用该实例中的变量时,我的程序如何知道我正在讨论与我之前在程序中相同的“myInt”或“myString”。
原谅我,如果这是没有意义的,或者如果我没有解释得很好,我还是福利局
你需要一个'接口'。您的处理程序实现了一种更新方法,通知消费者何时发生了有趣的事消费者(类实例)实现相同的接口并在发生事件时接收回调。就像一个'onClickListener',但定义你的方式。 http://stackoverflow.com/questions/14660671/how-to-notify-an-activity-when-globalvariables-are-changed/14660808#14660808 – Simon 2013-04-23 18:36:37