У меня есть два 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
для достижения этого поведения?