Я создал службу, которая отправляет местоположение устройства на сервер, где это место хранится в БД.Служба Android не останавливается
В этой службе я реализовал LocationListner и внутри метода onLocationChanged im, отправляя его на сервер через HttpPost, устанавливая будильник для службы (так как я хочу, чтобы он отправлял местоположение каждый час), а затем останавливал оказание услуг.
Проблема даже в том, что когда Ive называется «stopself», служба продолжает работать несколько раз перед остановкой (как в случае отправки местоположения в несколько раз больше). Как я могу изменить его так, чтобы он немедленно останавливался.
ПФБ код для метода onLocationChanged
public void onLocationChanged(android.location.Location location) {
if(location!=null)
{
System.out.println("here");
latid = location.getLatitude();
longid = location.getLongitude();
String userinfo = ``Double.toString(latid)+"&&&&"+Double.toString(longid);
Location = userinfo;
Toast.makeText(getApplicationContext(), Location, 1000).show();
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost("http://www.easymontra.in/location/try.php");
List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2);
nameValuePairs.add(new BasicNameValuePair("lat", Double.toString(latid)));
nameValuePairs.add(new BasicNameValuePair("long", Double.toString(longid)));
try {
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
// Execute HTTP Post Request
try {
HttpResponse response = httpclient.execute(httppost);
} catch (ClientProtocolException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
AlarmManager alarmManager = (AlarmManager)getSystemService(ALARM_SERVICE);
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(System.currentTimeMillis());
calendar.add(Calendar.MINUTE, 60);
alarmManager.set(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), alarmIntent);
Toast.makeText(getApplicationContext(), "stopping now", 1000).show();
stopSelf();
}
привет, спасибо за ответ, когда он поворачивается я звонил в приемник местоположения с параметрами времени и расстояния как 0, которые вызывали проблемы, теперь все они разобрались. –