2012-04-11 94 views
1

我正在研究一个处理谷歌地图和GPS的Android应用。它的接近警报应用程序显示地图接受来自用户的触摸并为该位置设置警报。我已经添加了一个EditText来接受用户喜欢被通知多远。但无论用户输入什么内容,该应用都会将该值视为2公里。是因为它使用手机信息塔而不是GPS吗?如果有任何教程可以帮助我开发应用程序,请分享它。当用户在地图上选择一个位置时,会显示一个新的屏幕让用户输入通知距离。但是,当应用从地图屏幕转到用户输入屏幕时,GPS图标会消失。可能是什么问题呢?这是处理闹钟设置的部分。当Android应用切换到新屏幕时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); 
      } 
     } 
    }); 
} 
+0

你正在使用哪个设备/ Android版本? – Evgeny 2012-05-24 20:08:15

回答

0

可能是在你的代码中的onPause写此行()方法

onPause() 
{ 
    gpsLocationManager.removeupdates() 
} 

请检查你的代码。

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