stopService doesn't stop's my service… why?

前端 未结 11 864
旧巷少年郎
旧巷少年郎 2020-12-03 07:02

i have a background service on my android APP that is getting my GPS position and sending it to a remote db. It work\'s fine.

The problem is when i want to stop the

11条回答
  •  無奈伤痛
    2020-12-03 07:43

    For those who want to send a request to server periodically, this is my solution. You should have this in your Activity or Fragment Activity

    {
    private static final Long UPDATE_LOCATION_TIME  = 30 * 60 * 1000l; // 30 minute
    
    private AlarmManager alarm;
    private PendingIntent pIntent; 
    ...
    
    @Override
        protected void onResume() {
            super.onResume();
    
            // Run background service in order to update users location
            startUserLocationService();
    
            Log.e(TAG, "onResume");
        }
    
        @Override
        protected void onStop() {
            super.onStop();
    
            stopUserLocationService();
    
            Log.e(TAG, "onStop");
        }
    
    private void startUserLocationService() {
            Log.i(TAG, "Starting service...");
            Intent intent = new Intent(MainFragmentHolder.this, ServiceUserLocation.class);
            pIntent = PendingIntent.getService(this, 0, intent, 0);
    
            alarm = (AlarmManager)getSystemService(Context.ALARM_SERVICE);
            Calendar cal = Calendar.getInstance();
            alarm.setRepeating(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(), UPDATE_LOCATION_TIME, pIntent);
        }
    
        private void stopUserLocationService() {
            alarm.cancel(pIntent);
            Intent intent = new Intent(MainFragmentHolder.this, ServiceUserLocation.class);
            stopService(intent);
        }
    
    }
    

提交回复
热议问题