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();
        }
    }
}


这工作正常,但我在日志中收到“应用程序可能做太多工作”的消息,并跳过了一堆帧。我该如何解决?

最佳答案

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

关于android - 跳过#个帧…该应用程序可能在其主线程上执行过多工作。,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37178492/

10-10 23:46