Arkadaşlar yardımlarınız için teşekkür ederim.

LocationCallback'i Callback değişkenine alarak çözüm sağladım daha önce de aynı şekilde denemiştim fakat Notification kısmını kaldırdıktan sonra problem olmadı ve sağlıklı şekilde çalışıyor.


public class TrackerService extends Service {
    User user;
    MainActivity main;
    private static final String TAG = TrackerService.class.getSimpleName();
    LocationRequest request;
    PendingIntent broadcastIntent;
    LocationCallback first;
    FusedLocationProviderClient client;
    float lastlng;
    float lastltd;
    float mesafe;
    @Override
    public IBinder onBind(Intent intent) {return null;}

    @Override
    public void onCreate() {
        super.onCreate();
        loginToFirebase();
        user = SharedPrefManager.getInstance(this).getUser();

    }
    @Override
    public void onDestroy(){
        client.removeLocationUpdates(first);
        final String path = getString(R.string.firebase_path) + "/" + user.getId();
        DatabaseReference ref = FirebaseDatabase.getInstance().getReference(path);
        ref.child("status").setValue(0);
    }

    public static float distFrom(float lat1, float lng1, float lat2, float lng2) {
        double earthRadius = 6371000; //meters
        double dLat = Math.toRadians(lat2-lat1);
        double dLng = Math.toRadians(lng2-lng1);
        double a = Math.sin(dLat/2) * Math.sin(dLat/2) +
                Math.cos(Math.toRadians(lat1)) * Math.cos(Math.toRadians(lat2)) *
                        Math.sin(dLng/2) * Math.sin(dLng/2);
        double c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1-a));
        float dist = (float) (earthRadius * c);

        return dist;
    }





    private void loginToFirebase() {
        // Authenticate with Firebase, and request location updates
        String email = getString(R.string.firebase_email);
        String password = getString(R.string.firebase_password);
        FirebaseAuth.getInstance().signInWithEmailAndPassword(
                email, password).addOnCompleteListener(new OnCompleteListener<AuthResult>(){
            @Override
            public void onComplete(Task<AuthResult> task) {
                if (task.isSuccessful()) {
                    Log.d(TAG, "firebase auth success");
                    requestLocationUpdates();
                } else {
                    Log.d(TAG, "firebase auth failed");
                }
            }
        });
    }

    private void requestLocationUpdates() {
        request = new LocationRequest();
        request.setInterval(1000);
        request.setFastestInterval(2500);
        request.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY);
        client = LocationServices.getFusedLocationProviderClient(this);
        final String path = getString(R.string.firebase_path) + "/" + user.getId();
        first = new LocationCallback() {
            @Override
            public void onLocationResult(LocationResult locationResult) {
                DatabaseReference ref = FirebaseDatabase.getInstance().getReference(path);

                Location location = locationResult.getLastLocation();
                if (location != null) {
                    Map<String, Object> myList = new HashMap<>();


                    myList.put("UserName", user.getAd()+" "+user.getSoyad());
                    myList.put("accuracy", location.getAccuracy());
                    myList.put("altitude", location.getAltitude());
                    myList.put("bearing", location.getBearing());
                    myList.put("elapsedRealtimeNanos", location.getElapsedRealtimeNanos());
                    myList.put("fromMockProvider", location.isFromMockProvider());
                    myList.put("latitude", location.getLatitude());
                    myList.put("longitude", location.getLongitude());
                    myList.put("provider", location.getProvider());
                    myList.put("speed", location.getSpeed());
                    myList.put("time", location.getTime());
                    myList.put("status", 1);



                    ref.setValue(myList);

                    if((double) lastltd > 0 && (double) lastlng > 0) {
                        mesafe = distFrom(lastltd,lastlng,(float)location.getLatitude(), (float)location.getLongitude());

                        Log.d(TAG,"Mesafa + "+distFrom(lastltd,lastlng,(float)location.getLatitude(), (float)location.getLongitude()));
                        if(mesafe > 10) {
                            SendData(Double.toString(location.getLongitude()), Double.toString(location.getLatitude()), "" + user.getId(), user.getAuth());
                        }
                    }else{
                        SendData(Double.toString(location.getLongitude()), Double.toString(location.getLatitude()), "" + user.getId(), user.getAuth());
                    }







                    lastlng = (float)location.getLongitude();
                    lastltd = (float)location.getLatitude();


                }
            }
        };

        int permission = ContextCompat.checkSelfPermission(this,
                Manifest.permission.ACCESS_FINE_LOCATION);
        if (permission == PackageManager.PERMISSION_GRANTED) {
            // Request location updates and when an update is
            // received, store the location in Firebase
            client.requestLocationUpdates(request,first, null);

        }
    }

    public void SendData(final String longtitude, final String latitude, final String user_id, final String auth){
        RequestQueue queue = Volley.newRequestQueue(this);

        StringRequest stringRequest = new StringRequest(Request.Method.POST, URLs.URL_POST,
                new Response.Listener<String>() {
                    @Override
                    public void onResponse(String response) {
                        try {
                            JSONObject Obj = new JSONObject(response);
                            if(Obj.getInt("error_code") == 1) {
                                SharedPrefManager.getInstance(getApplicationContext()).logout();
                            }
                        } catch (JSONException e) {
                            Log.e(TAG, "unexpected JSON exception", e);
                        }

                        Log.e(TAG, "Gelen yanıt: "+ response.toString());
                        Log.e(TAG, "Gönderilen"+ user_id+" - "+auth);
                    }
                }, new Response.ErrorListener() {
            @Override
            public void onErrorResponse(VolleyError error) {
                Log.e(TAG,"Çalışmıyor!"+ error);
            }
        })
        {
            @Override
            protected Map<String,String> getParams(){
                SimpleDateFormat fmt = new SimpleDateFormat("MM-dd-yyyy HH:mm");
                Date currentTime = Calendar.getInstance().getTime();
                fmt = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
                String dateString = fmt.format(currentTime);
                Map<String,String> params = new HashMap<String, String>();
                params.put("long",longtitude);
                params.put("lati",latitude);
                params.put("date",dateString);
                params.put("id",user_id);
                params.put("auth",auth);
                return params;
            }
            @Override
            public Map<String, String> getHeaders() throws AuthFailureError {
                Map<String,String> params = new HashMap<String, String>();
                params.put("Content-Type","application/x-www-form-urlencoded");
                return params;
            }
        };
        queue.add(stringRequest);
    }
}