Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Blackberry 电子邮件附件下载完成后无法关闭屏幕_Blackberry - Fatal编程技术网

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

Blackberry 电子邮件附件下载完成后无法关闭屏幕,blackberry,Blackberry,我正在使用AttachmentDownloadManager类下载方法将电子邮件附件下载到设备。在附件下载到设备时,我正在显示进度屏幕。在downloadCompleted事件侦听器方法中,我正在尝试停止/关闭进度屏幕,但无法执行此操作。 下面是代码片段: attachmentDownloadMngr = new AttachmentDownloadManager(); attachmentDownloadMngr.download(attachmentBodyPart, null, new

我正在使用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。即使附件下载完成,进度屏幕也不会获取任何事件。
请帮我解决这个问题。

每次回拨updateprogress时,您似乎都在推一个全局屏幕。我不会这么做的。我宁愿在开始下载时用gaugefield按下全局屏幕,然后使用gaugefield.setValuevalue设置gaugefield的值


您这样做的方式意味着,事件线程将太多的屏幕推到堆栈上,我猜它会抛出运行时异常并杀死您的应用程序

你尝试过popScreen.close吗?你好,日山,谢谢你的回复。我做了同样的事,但仍然是同样的问题。我首先检查进度屏幕是否为空,然后按下全局屏幕,否则使用setValue方法更新仪表字段。但我仍然面临着同样的问题。