2012-07-04 4 views
0

Я заметил уже несколько раз, что уже отложенный диалог появляется снова после того, как телефон заблокирован и затем разблокирован. это случается раз в то время, не всегда.Отключенный диалог появляется снова после разблокировки экрана

код, который я использую довольно прямо вперед:

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

Я не могу сказать это со 100% уверенностью, но я думаю, что это как-то связано с отладкой. Это никогда не случается со мной с приложениями, которые были скомпилированы для производства.

0

Я подозреваю, что вы положили в showDialog(DIALOG_LOADING);onResume() обратного вызова. Это наиболее вероятная причина, по которой диалоговое окно отображается как onResume(), будет вызываться после разблокировки экрана.

+0

nope, он находится в onCreate(), где он принадлежит ... – SimonSays

+0

Тогда я не могу быть уверен, что будет вызываться после разблокировки экрана, так как некоторые производители могут изменить поведение. Вы можете попробовать добавить код отладки перед 'showDialog()', чтобы увидеть, вызвана ли она после разблокировки экрана. –

Смежные вопросы