我想在我的动态壁纸中显示当前时间。 我正在使用andengine gles2锚点中心来开发它。 我所做的是
注册了一个带有场景的更新处理程序,使用Calendar实例读取当前时间并显示它。但它继续GC运行。这是我的代码
mScene.registerUpdateHandler(new IUpdateHandler() {
@Override
public void onUpdate(float pSecondsElapsed) {
c = Calendar.getInstance();
yy = c.get(Calendar.YEAR);
mm = c.get(Calendar.MONTH);
dd = c.get(Calendar.DAY_OF_MONTH);
hh = c.get(Calendar.HOUR);
min = c.get(Calendar.MINUTE);
amOrpm = c.get(Calendar.AM_PM);
am_pm = "AM";
if (amOrpm == 1) {
am_pm = "PM";
} else {
am_pm = "AM";
}
displayString = hh + "\n" + min + "\n " + am_pm;
mText.setText(String.valueOf(displayString));
}
@Override
public void reset() {
}
});
我必须遵循什么方法来减少垃圾收集器的运行?
答案 0 :(得分:2)
您可以使用Time
对象。您可以创建一个Time
- 实例,并使用其setToNow()
- 方法对其进行更新。然后,您可以从year
,month
等字段访问YEAR,MONTH等(当您调用setToNow()
方法时,它们会更新。)
由于这不是每次更新都会创建相对繁重的Calendar
的任何新实例,因此您将体验到更少的垃圾收集。