我有一个使用listview的应用程序。
按照以下要求更新并更清楚地解释情况: 在问到下面的问题后,我想我找出了问题发生的确切顺序:
我最好的猜测是,在第5步调用getView(),因为锁定屏幕处于纵向方向。看起来Android尝试将应用程序屏幕重新布局为纵向,尽管由于屏幕已被锁定而不需要这样做。
预期和正常吗?我建立了我的逻辑,即在任何其他编码之前,屏幕上的活动/片段的onResume将始终被调用。
答案 0 :(得分:1)
所以我设法确认了这种行为的原因如下:
Android强制重新布局“锁定”锁定屏幕的应用程序,因为它们都是以不同方向固定的。
我发现除了强制执行应用程序屏幕方向之外没办法阻止这种情况,这在我的情况下不是一个选项。我找到的唯一解决方法是在每个Adapter.getView()实现的开头进行以下编码。
public View getView(int index, View convertView, ViewGroup parent) {
if (Utils.isScreenLocked()) {
return aConvertView;
}
}
isScreenLocked()方法使用KeyGuardManager检查屏幕是否被锁定。