Android requestLocationUpdates引发异常

Android requestLocationUpdates引发异常,android,service,gps,locationmanager,Android,Service,Gps,Locationmanager,我正在创建一个定期更新职位的服务。但是使用下面的代码,它让我感到: runException无法在未调用Looper.prepare()的线程内创建处理程序 此代码在服务中异步类的doInBackground内运行 private void UpdatePosition() { locManager = (LocationManager)getSystemService(Context.LOCATION_SERVICE); Location locat

我正在创建一个定期更新职位的服务。但是使用下面的代码,它让我感到:

runException无法在未调用Looper.prepare()的线程内创建处理程序

此代码在服务中异步类的doInBackground内运行

private void UpdatePosition()
    {
        locManager = (LocationManager)getSystemService(Context.LOCATION_SERVICE);


        Location location = 
                locManager.getLastKnownLocation(LocationManager.GPS_PROVIDER);
        showPosition(location);
        locationListener = new LocationListener() {
            public void onLocationChanged(Location location) {
                showPosition(location);
            }
            public void onProviderDisabled(String provider){

            }
            public void onProviderEnabled(String provider){

            }
            public void onStatusChanged(String provider, int status, Bundle extras){
                Log.i("LocAndroid", "Provider Status: " + status);

            }
        };


        locManager.requestLocationUpdates(
                LocationManager.GPS_PROVIDER, 15000, 0, locationListener);
    }
我查看了几篇文章,发现请求必须在uithread中运行,但不知道如何或在何处放置它

我能做什么

编辑:

我将只将此添加到我的代码中,现在不会抛出任何错误

private void UpdatePosition()
    {
        Looper.prepare();
        looper = Looper.myLooper();
        locManager = (LocationManager)getSystemService(Context.LOCATION_SERVICE);


        Location location = 
                locManager.getLastKnownLocation(LocationManager.GPS_PROVIDER);
        showPosition(location);
        locationListener = new LocationListener() {
            public void onLocationChanged(Location location) {
                showPosition(location);
            }
            public void onProviderDisabled(String provider){

            }
            public void onProviderEnabled(String provider){

            }
            public void onStatusChanged(String provider, int status, Bundle extras){
                Log.i("LocAndroid", "Provider Status: " + status);

            }
        };


        locManager.requestLocationUpdates(
                LocationManager.GPS_PROVIDER, 15000, 0, locationListener);
    }

但是我不知道它是否正确..你怎么说?

你能发布完整的异常和stacktrace,以便我们更好地了解问题。另外,当从doInBackground调用或在位置更新回调中调用时,你是否尝试更新showPosition方法中的GUI?你的AsyncTask是否做了其他事情,或者它是否只与LocationListener?在showPosition中,我只是将纬度和经度转换为所需的格式。但是我和UI没有联系@hardillbmy AsyncTask正在侦听我的服务器,等待接收发送位置的命令。当我收到订单时,调用UpdatePosition获取数据@Sam