gpt4 book ai didi

java - 在 BlackBerry 中调用 Web 服务调用时,应用程序挂起

转载 作者:太空宇宙 更新时间:2023-11-04 08:05:15 25 4
gpt4 key购买 nike

我正在创建我的第一个黑莓应用程序,尝试连接到休息网络服务。我尝试了在互联网上找到的示例。请引用此链接:http://mobile-development.org/index.php/blackberry/how-to-call-restful-web-services-in-blackberry

我尝试在我的简单 BlackBerry 应用程序中实现它,该应用程序是当您在 BlackBerry Plug-in for Eclipse IDE 中创建新的 BlackBerry 项目时自动创建的应用程序。我只是将代码(字面上复制并粘贴它)放在我的按钮中,单击该按钮时,将执行此类代码。但是,当我单击按钮时,应用程序挂起。

当我实现一个在输出日志中简单输出“Hello”的代码时,应用程序运行得很好。其背后的原因是什么?我需要在单独的线程中运行 Web 服务调用吗?请帮忙。预先感谢您。

--------------------请阅读下文----------------------------------

我注意到我的应用程序挂起,因为它等待 Web 服务调用的响应至少 2 分钟。我读过这个:http://www.blackberry.com/knowledgecenterpublic/livelink.exe/fetch/2000/348583/800451/800563/What_Is_-_Different_ways_to_make_an_HTTP_or_socket_connection.html?nodeid=826935&vernum=0 -- 并在 url 末尾添加了“deviceside=true”(http://yourwebserviceurl.com;deviceside=true”)。现在工作正常。也许正确的实现是在后台或单独的线程中执行任务,并设置我还不知道的超时。我仍然对是否将 deviceside 设置为 true/false 感到困惑。当我在模拟器中运行我的应用程序时,我是否应该将 deviceside 设置为 true,然后如果我希望它在实际中运行,只需将其更改为 false设备?这暂时由我来发现,或者您也可以帮我解决这个问题。;-)

最佳答案

他们给出的代码是用于HTTP连接的,完全没问题,但是我们需要在线程中调用这段代码,因为ui也在线程中工作,因此它被卡住了。所以这里需要用到线程的概念。查看提供的示例

Eclipse helios\plugins\<sdk version>\components\samples\com\rim\samples\device\httpdemo

每当你想在后台线程中更新 UI 时,请使用

UiApplication.getUiApplication().invokeLater(new Runnable() 
{
public void run()
{
<Update UI>
}
});

希望对你有帮助。

关于java - 在 BlackBerry 中调用 Web 服务调用时,应用程序挂起,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12170768/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com