title: android.view.ViewRoot$CalledFromWrongThreadException: Only the original thread that created a view hierarchy can touch its views.
body: <p>I am developing an android app in which i need to display images after downloading them  from server and when the downloading is proceeding a progress dialog is  being show. For that i an using an asynctask class.
  I am using t he following source code for it.</p>
  
  <pre><code>           private void startDownload() {
  
      new DownloadFileAsync().execute(imageUrl);
      image.setImageBitmap(bitmap);
  }
   @Override
      protected Dialog onCreateDialog(int id) {
          switch (id) {
              case DIALOG_DOWNLOAD_PROGRESS:
                  dialog = new ProgressDialog(this);
                  dialog.setTitle("Loading");
                  dialog.setMessage("Please wait...");
                  dialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);
                  dialog.setCancelable(false);
                  dialog.show();
                  return dialog;
              default:
                  return null;
          }
      }
  
  
   class DownloadFileAsync extends AsyncTask&lt;String, String, String&gt; {
       int count;
       URL myFileUrl;
  
          @Override
          protected void onPreExecute() {
              super.onPreExecute();
              showDialog(DIALOG_DOWNLOAD_PROGRESS);
          }
  
          @Override
          protected String doInBackground(String... aurl) {
  
  
              try {
                  myFileUrl = new URL(imageUrl);
                  HttpURLConnection conn = (HttpURLConnection) myFileUrl
                          .openConnection();
                  int lenghtOfFile = conn.getContentLength();
                  //conn.setDoInput(true);
                  conn.setConnectTimeout(10000);
                  conn.setReadTimeout(10000);
                  conn.connect();
                  InputStream is = conn.getInputStream();
                  bmImg = BitmapFactory.decodeStream(is);
                  bitmap = BitmapFactory.decodeStream((InputStream) new URL(imageUrl)
                          .getContent());
                  bitmap = Bitmap.createScaledBitmap(bitmap, 70, 70, true);
  
                    byte data[] = new byte[1024];
                    System.out.println("mmmmmmmmmmmm");
  
                      long total = 0;
                      System.out.println("nnnnnnnnnn");
                      while ((count = ((InputStream) new URL(imageUrl)
                      .getContent()).read(data)) != -1) {
                          total += count;
                          publishProgress(""+(int)((total*100)/lenghtOfFile));
                          for(int l=0;l&lt;4;l++){
                          if(listObject.get(l).getImage()!="")
                         image.setImageBitmap(bitmap);
                      }}
  
              }
              catch(Exception e){
                  System.out.println(e);}
  
          return null;
          }
  
          protected void onProgressUpdate(String... progress) {
              dialog.setProgress(Integer.parseInt(progress[0]));
          }
  
          @Override
          protected void onPostExecute(String unused) {
              image.setImageBitmap(bitmap);
              dismissDialog(DIALOG_DOWNLOAD_PROGRESS);
  
          }
          }
  </code></pre>
  
  <p>But it giving the following exception.:</p>
  
  <pre><code>android.view.ViewRoot$CalledFromWrongThreadException: Only the original thread that created a view hierarchy can touch its views. 
  </code></pre>
  
  <p>i am unable to figure out the problem. Can anyone help me over this.
  Thanks</p>