我正在編寫一個Android文件查看器提供給主機應用程序,我們的查看器是一個片段,主機應用程序使用newinstance使用我們的片段。有些代碼如下:我怎樣才能防止UI線程繼續,直到密碼輸入正確
newInstance() {
......
openfile();
return fragment;
}
openfile() {
......
if(ispasswordfile) {
showPasswordInputDialog;
mpassword = .;
mpagecount = ..;
......;
return errorcode;
} else {
.......
}
}
showPasswordDialog() {
......
dialog.show();
EditText edittext = dialog.findViewById(...);
edittext.addListener(){
override
public boolean action....{
.......
if(password is right) {
.....
}
}
};
我的問題是,當對話框輸入的密碼是正確的,然後showPasswordInputDialog後執行的判決。這些代碼都在UI線程中運行,如果密碼錯誤,監聽器需要更改UI,所以我無法暫停UI線程。那麼是否有任何方法來設置showPasswordInputDialog之間的障礙;和mpassword =。當密碼正確時,我將刪除屏障並讓UI線程關閉。 我嘗試使用while循環它不起作用。當密碼正確時,我無法在偵聽器中添加動作,因爲我想通過newInstance返回片段。
這已經困擾了我很長時間,幫助表示感謝!
那麼我的問題沒有解決辦法? –
@shaopingwang:對。與大多數現代UI框架一樣,Android的基於窗口小部件的UI框架在事件驅動的基礎上工作。 – CommonsWare
我認爲當輸入是正確的,然後做後來的工作是一個正常的,那麼它如何在其他Android應用程序中實現? –