Несмотря на то, что вы вызываете thread.yield (), вы находитесь внутри цикла while (), который, вероятно, повторяется тысячи раз в секунду, каждый раз вызывая .yield (), но тот факт, что он выходит из контроль означает, что он использует ресурсы. Если вы добавите туда сообщение Log.d
, вы поймете, что я имею в виду.
Я рекомендую использовать Thread.sleep()
вместо Thread.yield()
. Причина в том, что пока нить спит, она уступает. Плюс ко сну вы получаете дополнительное преимущество, замедляя while()
и не используя ресурсы. Интервал сна в 500 мс должен быть достаточным =)