Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/178.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java postInvalidate()导致堆_Java_Android_Garbage Collection_Heap - Fatal编程技术网

Java postInvalidate()导致堆

Java postInvalidate()导致堆,java,android,garbage-collection,heap,Java,Android,Garbage Collection,Heap,我已经设置了一个系统来移动应用程序中的某些图像,但是我的postInvalidate()调用似乎会导致大量堆空间 private class update extends TimerTask { @Override public void run() { long timestamp = System.currentTimeMillis() - prevTime; prevTime = System.currentTimeMillis();

我已经设置了一个系统来移动应用程序中的某些图像,但是我的
postInvalidate()
调用似乎会导致大量堆空间

private class update extends TimerTask {
    @Override
    public void run() {

        long timestamp = System.currentTimeMillis() - prevTime;
        prevTime = System.currentTimeMillis();
        speed += (speedIncrease / 5 * timestamp);
        location.y += (int) (speed / 5 * timestamp);
        if (location.y >= targetY) {
            location.y = targetY;
            falling = false;
            super.cancel();
        }
        screen.redraw();
    }
}
是我的代码,由
计时器调用。计划每五毫秒调用一次。
screen.redraw()
调用视图中的
postInvalidate()

我得到的一份错误日志:

05-27 07:53:05.711: I/dalvikvm-heap(9805): Grow heap (frag case) to 8.875MB for 1536016-byte allocation
05-27 07:53:05.791: D/dalvikvm(9805): GC_CONCURRENT freed 12K, 21% free 8978K/11335K, paused 2ms+12ms
05-27 07:53:05.861: D/dalvikvm(9805): GC_FOR_ALLOC freed 1501K, 34% free 7490K/11335K, paused 19ms
05-27 07:53:05.861: I/dalvikvm-heap(9805): Grow heap (frag case) to 8.875MB for 1536016-byte allocation
05-27 07:53:05.941: D/dalvikvm(9805): GC_CONCURRENT freed 12K, 21% free 8978K/11335K, paused 2ms+2ms
05-27 07:53:06.011: D/dalvikvm(9805): GC_FOR_ALLOC freed 1501K, 34% free 7490K/11335K, paused 19ms
05-27 07:53:06.011: I/dalvikvm-heap(9805): Grow heap (frag case) to 8.875MB for 1536016-byte allocation
05-27 07:53:06.111: D/dalvikvm(9805): GC_CONCURRENT freed 12K, 21% free 8978K/11335K, paused 2ms+3ms
05-27 07:53:06.221: D/dalvikvm(9805): GC_FOR_ALLOC freed 1502K, 34% free 7490K/11335K, paused 19ms
我不确定我在这里错过了什么/做错了什么。有什么想法吗

谢谢

编辑:


我已经发现了问题,我不小心在draw方法中加载了背景。我在这里展示的代码导致调用了draw方法,因此图像一次又一次地被加载。

有没有大的资源附加到画布上?大位图会导致这个问题…我已经发现了问题,我不小心在draw方法中加载了背景。我在这里展示的代码导致调用draw方法,从而一次又一次地加载图像。