我正在尝试制作一个应用程序,让用户将他的位置记录到网络服务器中,但我陷入了这一切的流程中。 我正在使用一些线程,但目前令人困惑的是如何最好地使用它们。 在主线程 (1) 上有 UI,用户点击按钮来记录位置,然后点击该按钮后,UI 线程显示一个“请稍候”对话框并启动一个新线程 (2) 来获取 GPS地点。 据我现在的理解:UI 线程现在卡在显示对话框中,并且线程(2)正在获取位置。接下来,当线程(2)完成获取位置后,我需要另一个线程(3)与http服务器通信。 据我了解,主线程(1)无法处理任何“sleep()”来定期检查其他线程为其设置的标志。 因此,关闭“请稍候”对话框的唯一方法是从其中一个线程中。正如你们所看到的,我有点困惑。 哪种方法是解决这个问题的最佳方法(严格来说线程同步)? 基本上我需要一个用户界面,在后台显示一个请等待对话框,应用程序首先获取 GPS 坐标,第二次获取位置记录在网络服务器上。 最后向用户展示成功与否。 谢谢!
最佳答案
您可以使用@vikram 评论的AsyncTask
。 Activity.runOnUiThread()
是另一种选择。 View.post()
是另一个。
关于java - 线程和用户界面交互,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17778397/