【问题标题】:update location in the background在后台更新位置
【发布时间】:2013-01-12 22:28:00
【问题描述】:

我正在使用以下代码进行位置更新:

locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 10, 500, locationListener);

以及将位置更新到服务器的 json :

JSONObject json = JSONfunctions.getJSONfromURL(updatelocation);
    try {
        json = (JSONObject) json.get("updated");
        //location is updated
    } catch (Exception e) {
                Toast.makeText(getBaseContext(),"Network issues.", Toast.LENGTH_LONG).show();
            }

上面的代码是正确的还是有其他方法可以在后台更新位置?

请帮帮我。
提前致谢。

【问题讨论】:

    标签: android json multithreading google-maps


    【解决方案1】:

    您应该为此使用 AsyncTask:请参阅 http://developer.android.com/reference/android/os/AsyncTask.html

    否则,您可能会阻塞 UI 线程,这很糟糕。

    【讨论】:

    • 谢谢丹。这段代码可以在这个范围内运行吗:new Thread(new Runnable() { public void run() { try { runOnUiThread(new Runnable() { public void run() {
    • 另一件事:我不想让用户知道后台的更新正在发生。
    • AsynTask 是一种方便且透明的异步运行任务的方法。你不需要照顾线程。这是为你完成的。只需开始任务,您就完成了。
    • @JamesPatrick 是的,您也可以使用 runOnUiThread() 在执行线程处理时更新 UI。
    • 如何在不显示 progessDialog 的情况下进行更新?在上述要求中同时执行其他任务时?假设我正在搜索位置,同时位置更新线程已经开始,它应该在不干扰彼此进程的情况下处理两者。如何做到这一点?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多