进度条在省电模式下消失 (Android 5.x)?

Progressbar disappears in battery saver mode (Android 5.x)?

我注意到在 Android 5.x 中启用省电模式(由用户或自动)时 - 应用程序中的进度条会消失。

没有动画,没有静态进度条小部件 - 只是空地方。

如何预防?我了解 Battery saver 会禁用某些系统动画,但进度条实际上是应用程序的重要组成部分 UI。

以防万一 - 实现 ProgressBar 布局的代码:

<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" />

以及它是如何在我的片段中实现的 class:

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);
            ...
     }
     ...
}

此外,我在应用程序中的所有进度条都遇到了这个问题,而不仅仅是这个。 禁用节电模式时 - 一切正常。

启用省电模式后,设备上的每个应用程序都会出现相同的问题。

因为省电模式可延长电池寿命,因此您可以使用 phone 直到有机会为它充电。它发生在每个应用程序上。所以不用担心。

How to prevent that?

在“设置”中禁用省电模式,然后重新启动设备。或者您可以请求用户 permission 禁用它。

How to prevent that?

ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS 允许您请求用户允许您的应用忽略电池优化,我还没有尝试过,但似乎是合法的。