我注意到在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);
...
}
...
}
此外,我面临应用程序中所有进度条的问题,而不仅仅是这个问题。 当电池保护模式被禁用时 - 一切正常。
答案 0 :(得分:2)
启用省电模式后,设备上的每个应用都会遇到同样的问题。
由于省电模式可延长电池寿命,因此您可以使用手机,直到您有机会充电。它适用于每个应用程序。所以别担心。
如何预防?
通过在“设置”中禁用“省电模式”,然后重新启动设备。或者,您可以向用户请求permission以禁用它。
答案 1 :(得分:2)
如何预防?
ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS允许您请求用户允许您的应用忽略电池优化,我还没有尝试过,但似乎合法。