【发布时间】:2017-02-25 07:45:19
【问题描述】:
在我的程序中,一旦启用 GPS,就需要接收用户纬度和经度...我正在使用 onGpsStatusChanged 不断检查 GPS 状态并且检查工作正常...唯一的问题是它试图立即检索用户位置,它返回纬度 0.0 和经度 0.0,因为获取这些信息需要几秒钟... .
然后我想:如果我可以让设备等待几秒钟在 GPS 启用后才检索它会工作的坐标...
但是:如果我使用另一个 Thread 或 AsyncTask(已经尝试过),它会一直返回 0.0 的坐标,因为真正的坐标被缓存到 Map 的 Main Activity 线程中......
那么,如何让android在主线程中等待?我试过'wait(long)'并且应用程序崩溃了。我试图解决这个问题好几个星期,我的时间不多了......请一些神圣的灵魂帮助我
【问题讨论】:
-
developer.android.com/reference/android/location/… 我刚刚看了一点,看来您可以请求更新未决意图。
-
您可以尝试使用处理程序发布延迟的可运行文件,并确保它在 ui 线程上运行。
-
不要让 UI 线程等待,这很糟糕。如果您使用了 AsyncTask,则在 doInBackground() 中执行 onGpsStatusChanged 并更新 onPostExecute() 中的坐标,这将在主 UI 线程上运行,并在 doInBackground() 之后自动执行。这样你就不必显式地让 UI 线程等待
-
@PaulKaram,我不知道该怎么做......我是 Android 开发的新手...... shubhankars,Mohamed 为我举例说明了它,它完美地工作!非常感谢你
-
哇,我没想到这个解决方案...我正在更新 doInBackground() 上的坐标,我想它也可以工作...谢谢!
标签: java android google-maps android-gps