Я хочу выполнять функцию только при возврате в приложение из фона.
Я включил метод в onResume
, и это делает его в определенной степени. Проблема в том, что onResume
запускается даже при создании Activity
и при возврате к занятию из другого занятия (например, после нажатия кнопки назад), и функция также выполняется там.
Как избежать этого и выполнять функцию только при возврате из фона?
Ps: мое приложение уже имеет несколько мест, используя startActivity
, поэтому переход на startActivityForResult
- утомительная задача.
Кроме того, все мои действия выходят из общего класса BaseAppCompactActivity
, и именно там находится мой метод, так что это будет применяться ко всему приложению.
Редактировать 2:
Мой BaseAppCompactActivity
такой же, как и ниже, с LifecycleObserver
, реализованным сейчас. Это, похоже, не работает.
public class BaseAppCompactActivity extends AppCompatActivity implements LifecycleObserver {
private String TAG = BaseAppCompactActivity.class.getSimpleName();
@Override
public void onCreate(Bundle savedInstanceState, PersistableBundle persistentState) {
super.onCreate(savedInstanceState, persistentState);
ProcessLifecycleOwner.get().getLifecycle().addObserver(this);
}
@Override
protected void onPause() {
super.onPause();
stopService();
}
@Override
protected void onPostResume() {
super.onPostResume();
startService();
}
// @Override
// protected void onResume() {
// super.onResume();
//// updateLastAccessedDate();
// }
private void startService() {
startService(new Intent(this, BusinessCacheService.class));
}
private void stopService() {
stopService(new Intent(this, BusinessCacheService.class));
}
@OnLifecycleEvent(Lifecycle.Event.ON_START)
private void updateLastAccessedDate() {
//Do something
}
}