电子邮件附件下载完成后无法关闭屏幕

时间:2011-12-12 05:16:06

标签: blackberry

我正在使用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)
{
}

progressScreenPopupScreen的实例,我在其中显示guagefield。即使在附件下载完成后,进度屏幕也不会收到任何事件。 请帮我解决这个问题。

1 个答案:

答案 0 :(得分:0)

每次收到updateprogress()的回调时,你似乎都在推动全局屏幕。我不会这样做。我开始下载时,我宁愿用globalscreen推送gaugefield,然后使用gaugeField.setValue(value)设置gaugefield的值。

你这样做的意思是,事件线程将太多的屏幕推到堆栈上,我猜它会抛出一个运行时异常并杀死你的应用程序。