Java-Как запустить AsyncTask из другого AsyncTask - PullRequest
1 голос
/ 24 мая 2019

У меня есть два AsyncTask класса, ConnectionThread и CommunicationThread.Я пытаюсь ConnectionThread создать и выполнить CommunicationThreads внутри его onPostExecute в цикле while, например:

protected synchronized void onPostExecute(Thread2ThreadInfo info) {
                while (true) {
                    CommunicationThread commThread = new CommunicationThread();
                    commThread.execute(info);
                    try {
                        this.wait();
                    } catch (InterruptedException e) {}
                }

        } 

Что я делаю, это создаю CommunicationThread commThread и выполняю его.После этого я заставляю текущий ConnectionThread ждать.

В ConnectionThread я делаю некоторые вещи в doInBackground, а затем вызываю notifyAll, чтобы разбудить communicationThread, который выполнил это connectionThread.Код ConnectionThread:

protected synchronized Value doInBackground(Thread2ThreadInfo... info) {
            //Do some stuff    
            notifyAll();
            Log.e("start", "after notify");

        }

Несмотря на то, что notifyAll выполняется, связь не активируется, и программа там зависает.Как мне использовать wait и notify для достижения этого поведения?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...