Похоже, что API в настоящее время пропускает метод типа "getFragments".
Однако, используя событие «onAttachFragment» класса Activity, должно быть довольно легко делать то, что вы хотите. Я бы сделал что-то вроде:
List<WeakReference<Fragment>> fragList = new ArrayList<WeakReference<Fragment>>();
@Override
public void onAttachFragment (Fragment fragment) {
fragList.add(new WeakReference(fragment));
}
public List<Fragment> getActiveFragments() {
ArrayList<Fragment> ret = new ArrayList<Fragment>();
for(WeakReference<Fragment> ref : fragList) {
Fragment f = ref.get();
if(f != null) {
if(f.isVisible()) {
ret.add(f);
}
}
}
return ret;
}
В случае, если нет готового метода для чтения состояния из объекта (isActive () в примере), я бы переопределил onResume и onPause, чтобы установить флаг (это может быть просто поле bool).
Это уже некоторая собственная бухгалтерия, но, на мой взгляд, она все еще очень ограничена, учитывая вполне конкретную цель, которую вы хотите достичь (список, зависящий от статуса).