Thread порядок выполнения

252
25 мая 2017, 08:38

Использую Thread. Запускаю его myThread.start();. После него у меня идет открытие нового интента. Как сделать так чтоб он вызывался, когда закончится Thread, а не сразу.

  final ProgressDialog dialog;
            /**
             * Progress Dialog for User Interaction
             */
            dialog = new ProgressDialog(getActivity());
            Thread myThread = new Thread( // создаём новый поток
                                    new Runnable() { // описываем объект Runnable в конструкторе
                                        public void run() {
                                            generateClan_Dannie(hashMap, clan_id);// вызываем метод воспроизведения
                                        }
                                    }
                            );

                            myThread.start();
                            Intent intent;
                            intent = new Intent(getActivity(), MainActivityClan.class);
                            startActivity(intent);
                            dialog.dismiss();
                            getActivity().finish();
Answer 1
 final ProgressDialog dialog;
            /**
             * Progress Dialog for User Interaction
             */
            dialog = new ProgressDialog(getActivity());
            Thread myThread = new Thread( // создаём новый поток
                                    new Runnable() { // описываем объект Runnable в конструкторе
                                        public void run() {
                                            generateClan_Dannie(hashMap, clan_id);// вызываем метод воспроизведения
                                        }
                                    }
                            );

                            myThread.start();
                            try {
                               myThread.join(); //та строка, что заставит ждать поток.
                            } catch (InterruptedException e) {
                                e.printStackTrace();
                            }
                            Intent intent;
                            intent = new Intent(getActivity(), MainActivityClan.class);
                            startActivity(intent);
                            dialog.dismiss();
                            getActivity().finish();/

Но вообще, в android не рекомендуется вызывать сырые потоки, используйте лучше AsyncTask \ runOnUiThread или Сервисы

READ ALSO
Доступ к View элементам сторонней разметки

Доступ к View элементам сторонней разметки

ПриветствуюЯ использую DialogFragment который вызывается из главного Activity, в самом DialogFragment я использую собственную разметку, в которой реализован...

230
DDD, Aggregate root без ORM, как сохранять?

DDD, Aggregate root без ORM, как сохранять?

Следуя методологии DDD вся логика домена находится внутри домена и не выносится в отдельные сервисыВопрос в том как сохранять изменения корня...

232
Как вывести знак % в String.format?

Как вывести знак % в String.format?

Мне нужно вывести % в Stringformat

374
Обработка символа backspace(\b) в консоли Intellij Idea

Обработка символа backspace(\b) в консоли Intellij Idea

Собственно вопрос в том, как настроить консоль идеи, чтобы корректно обрабатывала управляющие символы?

290