Show toast message inside run method of Thread.Show toast message inside run method of Thread.

I am using a thread and want to show a Toast message to user but when using Toast inside run method of thread getting force close error.
   
Thread background = new Thread(new Runnable() {
  public void run() {
    try {
              // Got Run time error at this line
              Toast.makeText(getBaseContext(),"Iam inside thread",Toast.LENGTH_SHORT).show();
        } 
     catch (Throwable t) 
      {
          // Got Run time error at this line
         Toast.makeText(getBaseContext(),"URL exeption!"+t,Toast.LENGTH_SHORT).show();
      }	

Answer 1

Toast will always show in UI Thread.
You have got error beacause new Thread will run seperate from UI Thread. you are try to show Toast inside a Thread seperate from UI Thread.

Use this code :

Using runOnUiThread call make If the current thread is not the UI thread, the action is posted to the event queue of the UI thread.

   
Thread background = new Thread(new Runnable() { 
  public void run() {
    try {
              // Now Again Toast is running in UI Thread
              
              runOnUiThread(new Runnable() {
                    public void run() {
                        Toast.makeText(getBaseContext(),"Iam inside thread",Toast.LENGTH_SHORT).show();
                    }
                });
        } 
     catch (Throwable t) 
      {
          // Now Again Toast is running in UI Thread
              
          runOnUiThread(new Runnable() {
                public void run() {
                    Toast.makeText(getBaseContext(),"URL exeption!"+t,Toast.LENGTH_SHORT).show();
                }
            });
         
      }	

SUBMIT YOUR ANSWER

  |  
 
 
 

Preview :