Android почему это НЕ выбрасывает неправильное исключение потока?

У меня создалось впечатление, что взгляды можно манипулировать только из основного потока … однако почему это НЕ сбой:

public class MainActivity extends Activity { TextView tv; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); tv = new TextView(this); tv.setText("original text"); setContentView(tv); new Thread(new Runnable() { @Override public void run() { tv.setText("trollollolol i should die here but i won't."); } }).start(); } } 

Я побежал на устройстве и эмуляторе, оба работают отлично, и я вижу изменение текста. что происходит?

Я также проверял идентификаторы потоков, а фоновый поток НЕ ОПРЕДЕЛЕН не основной поток (threadID = 1)

Android фактически не останавливает вас от обновления пользовательского интерфейса вне основного потока. Это всего лишь тихая бомба замедленного действия. Если основной поток пользовательского интерфейса не обновляет пользовательский интерфейс в то время, ваш поток может это сделать. По крайней мере, это было мое понимание. Я не знаю наверняка на 100%, но я смог (случайно) обновить интерфейс от внешнего основного потока пользовательского интерфейса. Иногда это сработало, а иногда и нет. Но в качестве хорошей практики я бы использовал Async task .