1

Я работаю над Android-приложением, и мне нужно получить данные из Интернета. Я объявляю «частный диалог прогресса» в «Homepage.java». Метод В OnCreate(), вызовите функциюAndroid ProgressDialog «Spinner» исчезает (не отображается)

dialog = ProgressDialog.show(Homepage.this, "Connecting", "Please wait for a while...", true); 

И создать еще один поток для извлечения данных, и в конце концов блок, вызовите

"dialog.dismiss()" 

Весь onResume() код показан в ниже.

@Override 
protected void onResume(){ 
    super.onResume(); 
    Log.e(TAG, "onResume"); 
    dialog = ProgressDialog.show(Homepage.this, "Connecting", "Please wait for a while..", true); 

    /******Start fetching data.******/ 
    Thread getDataThread = new Thread() { 
     @Override 
     public void run() { 
      try { 
       try { 
        getData(); 
       } catch (JSONException e) { 
        alert_error(); 
        e.printStackTrace(); 
       } catch (IOException e) { 
        alert_error(); 
        e.printStackTrace(); 
       } finally { 
        dialog.dismiss(); 
       } 
      } catch (SQLException e) { 
       alert_error(); 
       e.printStackTrace(); 
      } catch (ExecutionException e) { 
       alert_error(); 
       e.printStackTrace(); 
      } catch (InterruptedException e) { 
       alert_error(); 
       e.printStackTrace(); 
      }finally{ 
       dialog.dismiss(); 
      } 
     } 
    }; 
    getDataThread.start(); 
} 

На первом, это прекрасно работало. (Вертушка показала) Но в каком-то момент (я не помню когда), диалог по-прежнему работает, но кок исчезает Показать, как показано ниже (место, обозначенное красная линия должна быть местом, где кок дисплей) Spinner is gone

диалог по-прежнему работает, но все ProgressDialog называется где-нибудь из этого приложения, вертушка ушла. (даже не показывается)

Если бы я изменил получение данные от интернет-части до сна за 10 секунд Это показано ниже

@Override 
protected void onResume(){ 
    super.onResume(); 
    Log.e(TAG, "onResume"); 
    dialog = ProgressDialog.show(Homepage.this, "Connecting", "Please wait for a while...", true); 

    /******Start fetching data.******/ 
Thread getDataThread = new Thread() { 
     @Override 
     public void run() { 

      try { 
       sleep(10*1000); 
      } catch (InterruptedException e) { 
       e.printStackTrace(); 
       dialog.dismiss; 
      } 
     } 
    }; 

    getDataThread.start(); 

} 

Вращатель все еще не отображается.

Я думаю, что может быть что-то связано с глобальными параметрами или значениями в моем проекте, я создаю пустую деятельность только с одним другим способом, кроме super.onCreate и setContentView я назвал «ProgressDialog диалог = ProgressDialog.show (домашняя страница. это «123», «456», «истина»);

и счетчик еще не отображается!

Но если я создам новый проект и добавлю тот же код, он будет работать!

Заранее благодарен!

+0

Опубликуйте свой класс, где вы открываете прядильщик и извлекаете данные, чтобы можно было помочь. – Drv

+0

Показать свой код – Vickyexpert

+0

Код добавлен. Из-за проблем с конфиденциальностью и проблем безопасности этого приложения я не могу показать оставшуюся часть. Но кроме этой активности (Homepage.java), любые другие действия сталкиваются с одной и той же проблемой, а именно с помощью счетчика. – KHC

ответ

3

Я думаю, что проблема в настройках телефона, у меня была такая же проблема, как только то, что вам нужно сделать, это:

Перейти к параметрам разработчика в настройках телефона.

Turn переход на (в моем случае я их выключил, чтобы сделать телефонный акт быстро)

Перезапустите приложение и, надеюсь, кок будет там.

UPDATE:

Или вы можете попробовать библиотеку как Material Dialogs для этой цели, его один из моих любимых, все, что вам нужно сделать, это

Compile

compile 'com.afollestad.material-dialogs:core:0.8.6.0' 

, а затем где вы хотите показать диалог

new MaterialDialog.Builder(this) 
    .title(R.string.progress_dialog) 
    .content(R.string.please_wait) 
    .progress(true, 0) 
    .show(); 

вы можете найти дополнительную информацию here, чтобы настроить ее и использовать подробнее.

Надеюсь, это поможет

+0

Я проверил и, кажется, уже включился. Если я создам новый проект, отобразится счетчик. Но эти проекты имеют множество видов деятельности и множество настроек и свойств, для переключения всех этих файлов на новый проект потребуется много времени. Спасибо в любом случае! – KHC

+0

Кстати, будь я на своем HTC ONE или эмуляторе, прядильщик просто не появляется. – KHC

+0

попробуйте этот диалог = ProgressDialog.show («Домашняя страница», «Подключение», «Подождите некоторое время ...», true, true); ' – Max