Messaggio del messaggio di tostatura da un thread

La mia applicazione lancia un thread per interrogare il web per alcuni dati. Voglio visualizzare un messaggio di tostatura quando non viene trovato nulla, ma la mia applicazione si blocca.

Ho provato a utilizzare l'applicazione Context dal thread, così:

  • Android "Solo il thread originale che ha creato una gerarchia di visualizzazione può toccare le sue viste".
  • Threading Esempio in Android
  • Dobbiamo utilizzare il thread di background per recuperare i dati utilizzando firebase?
  • Cordova / Phonegap: eseguire il plugin FileTransfer nel thread di background
  • CancellationException quando si utilizza ExecutorService
  • Problema di ProgressDialog durante Activiy onCreate (): void in Android
  • Toast.makeText(getApplicationContext(), "testttt", Toast.LENGTH_LONG).show(); 

    Ho anche provato a creare un Runnable con la chiamata Toast e chiamando RunOnUiThread (runnable) dalla Thread (la chiamata Toast in questo runnable utilizza l'Attività come primo parametro).

    Qualcuno ha delle idee su come realizzare questo?

    4 Solutions collect form web for “Messaggio del messaggio di tostatura da un thread”

    Provare a submit all'interno di un object Gestore.

     final Handler mHandler = new Handler(); final Runnable mUpdateResults = new Runnable() { public void run() { Toast(this, message, duration).show(); } new Thread() { public void run() { mHandler.post(mUpdateResults); } }.start(); 

    Toast.makeText().show() deve essere sicuramente eseguito sul thread UI.

    Si dovrebbe probabilmente utilizzare un AsyncTask come Octavian Damiean citato, ma qui è un codice utilizzando runOnUiThread se si è impostato su che utilizza che:

      public void showToastFromBackground(final String message) { runOnUiThread(new Runnable() { @Override public void run() { Toast.makeText(this, message, Toast.LENGTH_LONG).show(); } }); } 

    Prova ad attuare una class che estende "Gestore" nella tua class Attività e invia un messaggio dall'altro thread. Spiegato più in dettaglio qui:

    http://www.anddev.org/the_pizza_timer_-_threading-drawing_on_canvas-t126.html

    E per favore, quando fai una domanda come questa, includi la traccia stack che stai ricevendo.

    Se stai eseguendo il gestore dalla class Attività, puoi impostare il context semplicemente facendo riferimento al tuo .tis della tua attività così:

     final Runnable showToastMessage = new Runnable() { public void run() { Toast.makeText(YourActivity.this, "Message", Toast.LENGTH_SHORT).show(); } }; 
    L'Android è un fan Android di Google, tutto su telefoni Android, Android Wear, Android Dev e applicazioni Android Games e così via.