我已经观察过几次已经被解除的对话框在手机被锁定然后解锁后再次出现。这种情况偶尔会发生,并非总是如此。
我使用的代码非常简单:
showDialog(DIALOG_LOADING);
new AsyncTask<Void, Void, PhotoList>(){
@Override
protected PhotoList doInBackground(Void... params) {
// load and return data
}
protected void onPostExecute(PhotoList result) {
dismissDialog(DIALOG_LOADING);
// display data
}
}.execute();
....
@Override
protected Dialog onCreateDialog(int id) {
Log.d(TAG, "onCreateDialog");
switch(id){
case DIALOG_LOADING:
return ProgressDialog.show(this, null, "Loading. Please wait...", true);
default:
return super.onCreateDialog(id);
}
}
现在,会发生什么:对话框显示,数据被加载,对话框被解除。到目前为止一直很好,只是在电话被锁定了一段时间后再次显示对话框,我再次解锁。
为什么会发生这种情况的任何想法?
感谢
西蒙
答案 0 :(得分:0)
我怀疑你将showDialog(DIALOG_LOADING);
置于onResume()
回调中。这是屏幕解锁后调用onResume()
对话框的最可能原因。
答案 1 :(得分:0)
我无法100%确定地说出来,但我认为这与调试有某种关系。使用为生产而编译的应用程序从未发生过这种情况。