当Android应用程序切换到新屏幕时GPS连接丢失

时间:2012-04-11 09:35:50

标签: android gps

我正在研究处理谷歌地图和GPS的Android应用程序。它是一个显示地图的接近警报应用程序接受来自用户的触摸并为该位置设置警报。我添加了一个EditText来接受用户希望通知目的地的距离。但无论用户输入什么,该应用程序将该值视为2km。是因为它使用手机信息塔信息而不是GPS吗?如果有任何教程可以帮助我开发应用程序,请分享。当用户选择地图上的位置时,将显示新屏幕以让用户输入通知距离。但是当应用程序从地图屏幕进入用户输入屏幕时,GPS图标会消失。可能是什么问题呢?这是处理警报设置的部分。

    mSetAlarm.setOnClickListener(new OnClickListener() {
        public void onClick(View v) {
            // Get the distance from the shared preferences
            SharedPreferences preferences = PreferenceManager
                .getDefaultSharedPreferences(getBaseContext());

            String distanceStr = preferences.getString("distance", "0");
            double distance = Double.parseDouble(distanceStr);

            LocationManager locationManager = (LocationManager) getBaseContext()
                .getSystemService(Context.LOCATION_SERVICE);

            AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);
            Intent intent = new Intent(LocationInfoActivity.this,
                MyBroadcastReceiver.class);
            PendingIntent pendingIntent = PendingIntent.getBroadcast(
                getBaseContext().getApplicationContext(), 234324243,
                intent, PendingIntent.FLAG_UPDATE_CURRENT);

            MyLocationListener locationListener = new MyLocationListener(
                locationManager, preferences, alarmManager,
                pendingIntent);

            if (distance < Double.parseDouble(i)) {
                alarmManager.set(AlarmManager.RTC_WAKEUP, System
                        .currentTimeMillis(), pendingIntent);
                locationManager.removeUpdates(locationListener);
            } else if (distance < 4.0) {
                WakeMeUtill.requestLocationUpdates(locationManager, 0, 0,
                        locationListener);
            } else {
                double quaterDistance = (distance * 3) / 4;
                WakeMeUtill.requestLocationUpdates(locationManager, 0,
                        (float) quaterDistance * 1000, locationListener);
            }
        }
    });
}

1 个答案:

答案 0 :(得分:0)

可能在您在onPause()方法

中编写此行的代码中
onPause()
{
   gpsLocationManager.removeupdates() 
}

请检查您的代码。

如果这不是问题,请分享更多细节。