По нажатию кнопки происходит сложный метод, но перед тем как метод выполнять я просто хочу чтобы ProgressBar стал видимым, но сначала выполняется метод потом уже появляться ProgressBar, как сделать чтобы сначала прогрессБар появлялся а потом уже метод выполнялся, что только не мудрил не получается, вроде пустяк а уже 3 дня убил. В программирование на Java новичок, только 2 месяцы сижу. Помогите плиз кто чем может))
button.setOnClickListener(new View.OnClickListener() {



           @Override
           public void onClick (View view) {





               /*new Thread(new Runnable() {
                   public void run() {

                       progress = 1;

                       button.post(new Runnable() {
                           public void run() {
                               if(progress == 1)
                                   button.setText("Загрузка....");
                           }
                       });
                   }
               }).start();*/
                    //new ShowAsyncTask().execute();
                    //progressBar.setVisibility(View.VISIBLE);



               final SQLiteDatabase db5 = dbHelper.getWritableDatabase();
                   db5.delete("words", null, null);

                   final SQLiteDatabase db = dbHelper.getWritableDatabase();
                   ContentValues cv = new ContentValues();

                   final String myTxt = txtShow.getText().toString();


                   String s = myTxt.toLowerCase();
                   String stopWords[] = {"is", "in", "of", "on", "to", "into", "are", "and", "at", "with", "a", "the", "for", "their", "from", "as",
                           "but", "i", "s", "there", "so", "an", "over", "when", "by", "or", "under", "if", "than", "same", "well", "those",
                           "off", "how", "these", "it", "them", "not"};
                   for (int i = 0; i < stopWords.length; i++) {
                       if (s.contains(stopWords[i])) {
                           s = s.replaceAll(stopWords[i] + "\\s+", "");
                       }
                   }


                   String text = deDup(s).toLowerCase();
                   final String[] keys = text.split(" ");
                   final String[] uniqueKeys;
                   int count = 0;
                   uniqueKeys = getUniqueKeys(keys);


                   int i = 0;
                   for (String key : uniqueKeys) {

                       if (null == key) {
                           break;
                       }


                       for (String sTxt : keys) {

                           if (key.equals(sTxt)) {
                               count++;
                           }
                       }



                       cv.put("word", key);
                       cv.put("count", count);
                       long rowID = db.insert("words", null, cv);
                       String empty = "";


                       count = 0;

                   }


                   SQLiteDatabase db2 = dbHelper.getReadableDatabase();
                   int numRows = (int) DatabaseUtils.queryNumEntries(db2, "words");
                   db2.rawQuery("SELECT * FROM " + "words" + " ORDER BY " + "count", null);
                   progressBar.setMax(numRows);
                   progressBar.setProgress(progress);
                   Cursor c = db2.query(DatabaseHelper.TABLE, null, null, null, null, null, "count desc");
                   if (c.moveToFirst()) {

                       // определяем номера столбцов по имени в выборке
                       int idColIndex = c.getColumnIndex("id");
                       int wordColIndex = c.getColumnIndex("word");
                       int countColIndex = c.getColumnIndex("count");

                       do {
                           String empty = "";
                           if (c.getString(wordColIndex).equals(empty)) {

                           } else if (c.getInt(countColIndex) > 5) {
                               adapter.add(new Item(c.getString(wordColIndex), c.getInt(countColIndex)));
                           }

                       } while (c.moveToNext());
                   } else

                       c.close();

                   adapter.notifyDataSetChanged();
                   db2.close();
                 //  progressBar.setVisibility(View.GONE);

               }



       });