黑莓插座连接和线程

时间:2011-10-04 08:23:41

标签: multithreading sockets blackberry location-provider

我正在开发一个有两个按钮的程序:Start和End。当我点击开始时,它将开始每30秒获取一次位置。并使用套接字连接将它们发送到服务器。当我点击结束按钮时,它将停止所有工作。 我可以不使用线程吗?如果我需要使用线程,那么实现它的最佳方法是什么。我应该使用LocationListener监听LocationProvider以获取每30秒的位置并在线程中发送它们,还是应该创建连接线程并在每个位置获取位置并发送。

3 个答案:

答案 0 :(得分:2)

不幸的是,这是一个部分答案(我很难理解你的其余问题):

  

我可以不使用线程吗?

这是不可能的。如果您在主UI线程上开始执行此操作,那么您的应用UI将必须等待,直到所有操作完成(网络是一项耗时的工作)。所以唯一的方法是在后台线程上执行此操作。

答案 1 :(得分:1)

如果你在UI主线程中建立连接,你的应用程序将无法响应,直到连接终止,这是错误的!您必须为您建立的每个连接创建一个线程,强烈建议这样做。

您必须创建一个每次睡眠30秒的线程,然后完成您所说的工作。

你的工作应该在线程中完成,不要使用主线程来做这些事情

答案 2 :(得分:0)

除了主UI线程(EDT)之外,您必须使用另一个线程进行网络事务。 您不能将主线程用于网络事务,因为这是一个耗时的操作,会使主线程无响应,并且您的应用程序最终会崩溃。