Я заметил, что при включении режима энергосбережения (пользователем или автоматически) в Android 5.x индикаторы прогресса в приложении просто исчезают.
Никакой анимации, никакого статического виджета прогрессбара — просто пустое место.
Как это предотвратить? Я понимаю, когда функция экономии заряда батареи отключает некоторые системные анимации, но индикаторы выполнения на самом деле являются важной частью пользовательского интерфейса приложения.
На всякий случай — код, реализующий ProgressBar Layout:
<ProgressBar
style="?android:attr/progressBarStyleHorizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/refresh_bar"
android:layout_alignParentTop="true"
android:indeterminate="true"
android:visibility="gone"
android:layout_marginTop="@dimen/progress_bar_top_margin" />
И как это реализовано в моем классе фрагментов:
public class FeedFragment extends Fragment {
...
// Progressbar to show refreshing state
private ProgressBar mRefreshBar;
...
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View v = inflater.inflate(R.layout.fragment_feed, container, false);
...
// Initialize and locate Refreshing progress bar
mRefreshBar = (ProgressBar) v.findViewById(R.id.refresh_bar);
...
mRefreshBar.setVisibility(View.VISIBLE);
...
}
...
}
Кроме того, я столкнулся с этой проблемой со всеми индикаторами выполнения в приложении, а не только с этим. При выключенном режиме энергосбережения все работает нормально.