1
我正在處理我的應用程序中的線程,我面臨線程等待函數的問題。我使用runOnUIThread()
創建並顯示了我的UI,我的主要thraed正在等待我的UI線程完成,在thraed完成後,我在主線程中執行了一些處理,問題在於主進程始終處於等待狀態,即使我的線程完成; S的工作,我現在用的等待和notify()
功能這個等待和通知在android
public String LSVerification() {
String t = null;
t="Sample string";
synchronized(this)
{
AndroidHTMLActivity.this.runOnUiThread(ShowDialog) ;//here i call my thread
try {
this.wait();//here i waiting for my thread to finish it's job
//here i do some process after my thread finish it's job
//the problem is here main process always in wait state
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
return t;
}
private Runnable ShowDialog = new Runnable() {
public void run() {
String t = null;
synchronized(ShowDialog)
{
Recognition recg=new Recognition(Activity.this);
recg.show();
this.notify();
}
}
};
我會syn chronize在同一個對象上的兩個塊,否則你可能有併發訪問 – njzk2
你調用this.notitify,這意味着你通知ShowDialog,而你在這等待着,這是另一個對象。使用1個通用對象來同步,通知和等待。 – njzk2
即使我使用相同的物體,在等待狀態下仍然沒有發生主要過程 –