0

我正在尝试制作一个应用程序,让用户将他的位置记录到网络服务器中,我陷入了这一切的困境。我正在使用一些线程,但在这一点上如何最好地使用它们令人困惑。在主线程 (1) 上有 UI,用户点击按钮记录位置,然后在点击该按钮后,UI 线程显示“请稍候”对话框并启动新线程 (2) 以获取 gps地点。正如我现在所理解的那样:UI 线程现在卡在显示对话框并且线程(2)正在获取位置。接下来当线程(2)完成获取位置时,我需要另一个线程(3)与 http 服务器进行通信。据我了解,主线程(1)无法处理任何“睡眠()”来定期检查其他线程将为它设置的标志。因此,解除“请稍候”对话框的唯一方法是来自其中一个线程。所以你们可以看到我有点困惑。哪个是解决这个问题的最佳方法(严格来说是线程同步)?基本上我需要一个用户界面来显示一个请等待对话框,而在后台应用程序是第一个获取 GPS 坐标,第二个是在获取位置后将其记录在 Web 服务器上。最后向用户显示成功与否。谢谢!在获取位置后将其记录在 Web 服务器上。最后向用户显示成功与否。谢谢!在获取位置后将其记录在 Web 服务器上。最后向用户显示成功与否。谢谢!

4

1 回答 1

1

您可以使用AsyncTask@vikram 评论的。Activity.runOnUiThread()是另一种选择。View.post()又是一个。

于 2013-07-22T00:58:39.330 回答