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