【问题标题】:Threads and UserInterface interaction线程和 UserInterface 交互
【发布时间】:2013-07-22 00:31:39
【问题描述】:

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

【问题讨论】:

标签: java android


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-07-27
    • 1970-01-01
    • 1970-01-01
    • 2015-04-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多