我的应用程序里有一个值,它不断增加。实现此操作的处理程序位于我的“EventHandlerClass.java”中的静态方法内。现在,我想在我的MainActivity内的TextView上显示这个值。
以下是包含处理程序的静态方法:
public static void pointsCounter() {
handler = new Handler(Looper.getMainLooper());
runnable = new Runnable() {
public void run() {
points = points + 5;
String pointMsg = "Points: " + points;
MainActivity.coinsTextView.setText(pointMsg);
handler.postDelayed(this, 1000);
}
};
handler.postDelayed(runnable, 1000);
}
这个pointsCounter方法是在EventHandlerClass.java中的另一个静态方法内被调用。
它每秒钟将points值增加5,我希望它能在TextView中显示出来。 正确的做法是什么? 因为如果我按照这种方式尝试,就必须将coinsTextView在MainActivity中设为静态变量。我们都知道,在静态上下文中无法引用非静态变量。 当我这样做时,它告诉我“不要将Android上下文类放置在静态字段中,这会导致内存泄漏”。 所以我的问题是,如何在静态方法中更新UI元素而不冒着内存泄漏的风险? 正确的做法是什么?