Я пытаюсь сделать это Android LocationRequest: получить обратный вызов, когда истекает запрос
Во фрагменте у меня есть этот код
@NonNull
protected Handler sHandler = new Handler(CoreApp.getContext().getMainLooper());
@Override
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
sHandler.postDelayed(mExpiredRunnable, 5000);
}
final Runnable mExpiredRunnable = new Runnable() {
@Override
public void run() {
System.out.println("aaa");
}
};
Во фрагменте все работает.У меня есть класс LocationHelper, у которого есть методы для работы с местоположением.В locationHelpetr у меня есть этот код
@NonNull
protected Handler sHandler = new Handler(CoreApp.getContext().getMainLooper());
final Runnable mExpiredRunnable = new Runnable() {
@Override
public void run() {
System.out.println("aaa konec");
mOnSuccessLocationListener.onSuccess(null);
}
};
public void startLocationUpdates() {
LocationRequest locationRequest = LocationRequest.create();
locationRequest.setInterval(5000);
locationRequest.setFastestInterval(5000);
locationRequest.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY);
locationRequest.setExpirationDuration(15000);
mFusedLocationClient.requestLocationUpdates(locationRequest, mLocationCallback, null);
if (mListener != null) {
mFusedLocationClient.getLastLocation().addOnSuccessListener(mOnSuccessLocationListener);
sHandler.postDelayed(mExpiredRunnable, 5000);
}
}
mExpireRunnable никогда не вызывается в locationHelper.Во фрагменте все ок.