2015-12-28 1 views
0

1. В моем приложении я хочу отслеживать текущее местоположение пользователя Каждые 1 минуту, а затем сохранить в локальной базе данных. Не получать правильное местоположение Несколько раз, когда пользователь идет пешком.Получите местоположение периодически с использованием фоновых услуг, сохраните в локальной базе данных на Android

2.Для поиска местоположения я хочу использовать API сервисов Google Play.

Моя потребность:

Справочная служба Если получить место, сохранить в локальной базе данных каждый minute.Even приложение закрывается.

также с low Использование батареи.

Я пробовал Некоторые коды некоторые методы устарели и не работают.

Пожалуйста, предложите мне какое-либо решение.

+0

Просто используйте API google places для Android, его быстро и просто. он использует http-запрос, поэтому для android – PauAI

+0

это не проблема, но не найти какой-либо пример с фоновыми службами, поиск местоположения с использованием API Google Places. – Kumar

+0

https://developers.google.com/places/android-api/current-place – PauAI

ответ

0

Это один из способов вы можете достичь его, сделать свой класс обслуживания как ниже

здесь,

с этим ScheduledThreadPoolExecutor ваша служба будет на в фоновом режиме и вы будете нуждаться в LocationManager

ваш SERVICE.class простираться служба осуществляет LocationListener, Runnable

private LocationManager mgr = null; 
    private ScheduledThreadPoolExecutor executor = new ScheduledThreadPoolExecutor(1); 



     @Override 
     public void onCreate() { 
       //check gps is on/off 
       //get locationmanager 
      } 

     @Override 
     public int onStartCommand(Intent intent, int flags, int startId) { 
        //check if internet is on/off 
        setBeforeDelay15(); 
        return super.onStartCommand(intent, flags, startId); 
     } 

     @Override 
     public void onLocationChanged(Location location) { 
        //re-execute at time you need with **scheduleAtFixedRate** 
     } 

     @Override 
     public void run() { 
       //here get the best location from two ways 1>gps and 2>network provider 
       //once you get this insert to database 
       //set delay then request call method again 
     } 

      @Override 
      public void onDestroy() { 
       //if locationmanager is not null then remove all updates 
      } 

     private void setDelay15() { 
      new Handler().postDelayed(new Runnable() { 

       @Override 
       public void run() {    
        // Log.e("srop self by", "delay15"); 
        startWork();   
       } 
      }, 300000);//120000 
     } 

private void startWork() { 
//check here for 1>gps and 2>network provider 
//get location and save it 
} 

используйте это, когда вам требуется место в вашем приложении.

 Смежные вопросы

  • Нет связанных вопросов^_^