private void startGameTimeElapseThread(){
new Thread(new Runnable() {
Date d = new Date();
public void run() {
while (true){
try {
synchronized (this) {
this.wait(1000);
}
} catch (InterruptedException e) {
e.printStackTrace();
}
postInvalidate();
}
}
}).start();
}
当我执行上述方法时,它给出了以下错误。
05-27 08:52:56.910: ERROR/AndroidRuntime(12715): FATAL EXCEPTION: main
05-27 08:52:56.910: ERROR/AndroidRuntime(12715): java.lang.OutOfMemoryError: bitmap size exceeds VM budget
是否有人知道如何在不出现此错误的情况下每秒刷新屏幕。 (在画布中我在那里绘制一个位图。这表示位图会导致此错误)
答案 0 :(得分:0)
您的应用程序中存在内存泄漏。 postInvalidate()
会导致整个ViewGroup
被重绘。您的位图的弱引用可能仍然存在于某处,或者对于GC无法释放的堆中存在对活动/视图的弱引用。
由于您没有发布很多代码,here is a link有关如何跟踪应用程序中的泄漏的信息。