Невозможно закрыть экран после завершения загрузки вложения электронной почты - PullRequest
0 голосов
/ 12 декабря 2011

Я использую метод загрузки класса AttachmentDownloadManager для загрузки вложений электронной почты на устройство. Я отображаю экран прогресса, пока вложения загружаются на устройство. В методе прослушивания событий downloadCompleted() я пытаюсь остановить /закройте экран прогресса, но не можете этого сделать.Ниже приведен фрагмент кода:

 attachmentDownloadMngr = new AttachmentDownloadManager();
 attachmentDownloadMngr.download(attachmentBodyPart, null, new IGAEmailAttachmentListener(this));

Ниже приведены DownloadProgressListener методы прослушивателя событий:

public void updateProgress(Object element, int current, int total)
{
   synchronized(UiApplication.getEventLock())
           {
                Ui.getUiEngine().pushGlobalScreen(progressScreen,1,UiEngine.GLOBAL_QUEUE);                  

           }
}


public void downloadCompleted(Object element)
{
synchronized(UiApplication.getEventLock())
           {
              Ui.getUiEngine().popScreen(progressScreen);
}
}

public void downloadCancelled(Object element)
{
}

progressScreen - это экземпляр PopupScreen, где я отображаю guagefield,Экран прогресса не получает никаких событий даже после завершения загрузки вложения.Пожалуйста, помогите мне решить эту проблему.

1 Ответ

0 голосов
/ 12 декабря 2011

Вы, кажется, нажимаете глобальный экран каждый раз, когда получаете обратный вызов на updateprogress(). Я бы не стал это делать. Я бы предпочел нажать globalscreen с gaugefield, когда я начну загрузку, а затем установить значение калибровочного поля, используя gaugeField.setValue(value).

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...