Blackberry 电子邮件附件下载完成后无法关闭屏幕
我正在使用AttachmentDownloadManager类下载方法将电子邮件附件下载到设备。在附件下载到设备时,我正在显示进度屏幕。在downloadCompleted事件侦听器方法中,我正在尝试停止/关闭进度屏幕,但无法执行此操作。 下面是代码片段:Blackberry 电子邮件附件下载完成后无法关闭屏幕,blackberry,Blackberry,我正在使用AttachmentDownloadManager类下载方法将电子邮件附件下载到设备。在附件下载到设备时,我正在显示进度屏幕。在downloadCompleted事件侦听器方法中,我正在尝试停止/关闭进度屏幕,但无法执行此操作。 下面是代码片段: attachmentDownloadMngr = new AttachmentDownloadManager(); attachmentDownloadMngr.download(attachmentBodyPart, null, new
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。即使附件下载完成,进度屏幕也不会获取任何事件。
请帮我解决这个问题。每次回拨updateprogress时,您似乎都在推一个全局屏幕。我不会这么做的。我宁愿在开始下载时用gaugefield按下全局屏幕,然后使用gaugefield.setValuevalue设置gaugefield的值
您这样做的方式意味着,事件线程将太多的屏幕推到堆栈上,我猜它会抛出运行时异常并杀死您的应用程序 你尝试过popScreen.close吗?你好,日山,谢谢你的回复。我做了同样的事,但仍然是同样的问题。我首先检查进度屏幕是否为空,然后按下全局屏幕,否则使用setValue方法更新仪表字段。但我仍然面临着同样的问题。