У меня была такая же проблема в прошлом, или, по крайней мере, она звучит похоже на ваше описание. Способ, который я решил, состоял в том, чтобы избежать вызова метода onDraw, поскольку платформа также вызывает этот метод МЕЖДУ вашими вызовами к нему в методе run вашего потока.
Вкратце, переименуйте ваш метод onDraw в что-то вроде Render (), а затем вызовите Render из цикла выполнения. Если вы все еще хотите очистить экран, а затем просто сделайте это в цикле выполнения (перед вызовом Render), это решило мою проблему "прорисовки случайных спрайтов".
Пожалуйста, дайте мне знать, если это поможет - это отлично сработало для меня.