跳过#frames ...应用程序可能在其主线程上做了太多工作。

时间:2016-05-12 06:04:31

标签: android

public class view extends View
{
    public view(Context context)
    {
        super(context);
    }
    protected void onDraw(Canvas canvas) {
        super.onDraw(canvas);
        canvas.drawBitmap(thing1, 200, 200, null);
        run();
    }
    public void run()
    {
        try {
            Thread.sleep(2000);
        } catch(InterruptedException ex) {
            Thread.currentThread().interrupt();
        }
        if(tester2){
            thing1=BitmapFactory.decodeResource(getResources(), R.drawable.image2);
            tester2=false;
            invalidate();
        }
        else
        {
            thing1=BitmapFactory.decodeResource(getResources(), R.drawable.image1);
            tester2=true;
            invalidate();
        }
    }
}

这很好但我在日志中得到“应用程序可能做太多工作”的消息并跳过一堆帧。我该如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

确保您没有在主线程上运行run()方法,因为这会暂停整个UI至少2000毫秒。在单独的Thread上运行该方法。