与BlackBerry上的PopupScreen或Dialog同步运行代码

时间:2010-10-25 21:19:18

标签: blackberry

我有一个程序可以从服务器获取消息并在本地存储它们。如果消息标题(而不是消息本身)存在于本地,则程序会在显示下载正在进行的弹出窗口时下载消息,如果用户想要中止下载,则会显示“取消”按钮。

在BlackBerry API中,似乎没有办法通过弹出窗口或对话框优雅地运行某些东西 - 优雅地意味着能够运行方法,一旦方法完成,弹出窗口就会关闭。

我查看了BlackBerry API,但找不到任何内容。

1 个答案:

答案 0 :(得分:1)

获取邮件正文的代码相对较长,因此不应该使用UI事件锁运行 - 如果是,则取消按钮将无效,BlackBerry OS会因为停止响应而终止您的应用程序下载时的UI事件。

因此,您可以使用Thread在单独的线程上运行下载代码。在向用户显示对话框的同时启动线程。要在线程完成时关闭对话框,您需要在操作开始时使用的线程中使用Application。invokeLater(...)。 invokeLater()调用可以关闭对话框并允许应用程序继续。对于“取消”按钮,您需要设置一些取消位,并偶尔进行单独的线程检查然后退出。