我有两个AsyncTask
类,ConnectionThread
和CommunicationThread
。我试图在一个while循环中让ConnectionThread
在其onPostExecute
内部创建并执行CommunicationThreads,如下所示:
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
的{{1}}。 connectionThread
的代码为:
ConnectionThread
尽管执行了protected synchronized Value doInBackground(Thread2ThreadInfo... info) {
//Do some stuff
notifyAll();
Log.e("start", "after notify");
}
,但通讯线程没有唤醒,程序在那里冻结了。我应该如何使用notifyAll
和wait
来实现此行为?