Nessun errore che invia textView.setText da thread non UI. Perché?

Ho scritto il seguente codice che inizia fondamentalmente una Thread da cui viene modificato il text di un TextView.

Mi aspettavo un errore perché accedevo a un TextTiew (elemento UI) da un'altra discussione rispetto alla discussione principale.

  • Valore di versione di User di AndroidManifest.xml nel codice
  • Da where viene il timeout di socket di 21000 ms?
  • Mapview getLatitudeSpan e getLongitudeSpan non funzionano
  • L'icona nella scheda non è visualizzata
  • Qual è la differenza tra Activity.runOnUiThread (azione runnable) e Handler.post ()?
  • Ruota la gerarchia della vista a 90 gradi
  • Ma funziona bene. Pensavo che questo non dovrebbe essere ansible per quanto ne so.
    Non lo capisco, cosa mi manca?

    public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); TextView tv = (TextView) findViewById(R.id.view1); tv.setText(Thread.currentThread().getName()); Thread theThread = new Thread(new aRunnable(tv)); theThread.start(); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.activity_main, menu); return true; } } 

     public class ARunnable implements Runnable{ TextView tv; public ARunnable(TextView tv){ this.tv = tv; } @Override public void run() { tv.setText(tv.getText()+"----" + Thread.currentThread().getName()); } } 

    One Solution collect form web for “Nessun errore che invia textView.setText da thread non UI. Perché?”

    I docs dicono di Do not access the Android UI toolkit from outside the UI thread. Non dicono che Android in sé contiene alcun codice per impedirti di farlo. È solo una ctriggers idea che potrebbe avere effetti collaterali non voluti.

    Dovresti call Activity.runOnUiThread() per aggiornare l'interface utente da altri thread.

    L'Android è un fan Android di Google, tutto su telefoni Android, Android Wear, Android Dev e applicazioni Android Games e così via.