2015-01-08 2 views
1

Я разрабатываю приложение для Android, в котором у меня есть кнопка входа в систему onclick, она будет извлекать некоторые данные из Интернета в потоке и отображать их на следующей странице. в то время как он извлекает данные, я показываю диалоговое окно showin ga message «Loading ...», но когда я нажимаю кнопку «Нить» выполняется в фоновом режиме, но не отображается диалоговое окно :(Страница выглядит так, как будто она была поражена. это кусок кода, который я использую.Диалоговое сообщение с темами

    showdialog(); 

        //********************** 
         Thread t = new Thread(){ 
         public void run(){ 
          new Downloader().DownloadHandler(); 
         } 
        }; 

        t.start(); 

        t.join(); 
        _dialog.cancel(); 
        Intent intent = new Intent(context, MainActivity.class); 
          startActivity(intent); 
} 
public void showdialog() 
{ 
_dialog = ProgressDialog.show(this, "Loading.....", "Please wait, we are on job.", true); 
} 

Пожалуйста, поделитесь, если их любой другой лучший способ достичь того же/или любой другой оптимальный способ показать пользователю, что содержание находится на пути. пожалуйста, сообщите мне знать, если их любой другой лучше.

+0

возможно, из-за '_dialog.cancel();'? –

ответ

0

он не показывается из-за из

t.join(); 

с join вы приостанавливаете поток ui и заставляете его ждать, пока t не завершит его выполнение. Вы должны использовать другой подход, например, вы могли бы реализовать шаблон делегирования, чтобы сообщить об этом потоке пользовательского интерфейса, что ваш поток завершил его выполнение, и что вы хотите отклонить диалог и начать новое действие.

Смежные вопросы