Будет handler.post (новый Runnable ()); Создать новую тему в Android?

Я написал небольшое приложение, которое меняет фон приложения каждые 3 секунды. Для этого я использовал объект Handler и Runnable. Он работает нормально. Вот мой код:

public class MainActivity extends Activity { private RelativeLayout backgroundLayout; private int count; private Handler hand = new Handler(); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Button clickMe = (Button) findViewById(R.id.btn); backgroundLayout = (RelativeLayout) findViewById(R.id.background); clickMe.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { count = 0; hand.postDelayed(changeBGThread, 3000); } }); } private Runnable changeBGThread = new Runnable() { @Override public void run() { if(count == 3){ count = 0; } switch (count) { case 0: backgroundLayout.setBackgroundColor(getResources().getColor(android.R.color.black)); count++; break; case 1: backgroundLayout.setBackgroundColor(Color.RED); count++; break; case 2: backgroundLayout.setBackgroundColor(Color.BLUE); count++; break; default: break; } hand.postDelayed(changeBGThread, 3000); } }; } 

Здесь я меняю фон интерфейса в потоке, backgroundLayout.setBackgroundColor(Color.RED); UI, т.е. backgroundLayout.setBackgroundColor(Color.RED); Внутри run (); Как он работает?

Выполняемый не является фоновым потоком, это единица работы, которая может выполняться в заданном потоке.

Обработчик не создает новый поток, он привязывается к петлевому механизму потока, который он создает (основной поток в этом случае), или к петлевому механизму, который вы даете ему во время построения.

Поэтому вы не запускаете что-либо в фоновом потоке, вы просто ставите в очередь сообщение на обработчике для запуска в более поздний момент времени, в основном потоке