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

时间:2016-02-05 10:24:59

标签: android android-progressbar battery-saver

我注意到在Android 5.x中启用了(通过用户或自动)电池保护模式 - 应用程序中的ProgressBars消失了。

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

如何预防?我知道当电池保护程序禁用某些系统动画时,但进度条实际上是应用程序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" />

它是如何在我的片段类中实现的:

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

此外,我面临应用程序中所有进度条的问题,而不仅仅是这个问题。 当电池保护模式被禁用时 - 一切正常。

2 个答案:

答案 0 :(得分:2)

启用省电模式后,设备上的每个应用都会遇到同样的问题。

由于省电模式可延长电池寿命,因此您可以使用手机,直到您有机会充电。它适用于每个应用程序。所以别担心。

  

如何预防?

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

答案 1 :(得分:2)

  

如何预防?

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