java android Choreographer:跳过271帧
单击按钮时,我的应用程序处于冻结状态,在anroid Monitor中,我看到:java android Choreographer:跳过271帧,java,android,Java,Android,单击按钮时,我的应用程序处于冻结状态,在anroid Monitor中,我看到: 03-22 13:01:33.490 25636-26150/com.smok.maps D/dalvikvm: GC_FOR_ALLOC freed 2468K, 11% free 29508K/32996K, paused 65ms, total 65ms 03-22 13:01:36.914 25636-26150/com.smok.maps D/dalvikvm: GC_FOR_ALLOC freed 39
03-22 13:01:33.490 25636-26150/com.smok.maps D/dalvikvm: GC_FOR_ALLOC freed 2468K, 11% free 29508K/32996K, paused 65ms, total 65ms
03-22 13:01:36.914 25636-26150/com.smok.maps D/dalvikvm: GC_FOR_ALLOC freed 3957K, 17% free 28675K/34324K, paused 54ms, total 54ms
03-22 13:01:37.744 25636-25636/com.smok.maps I/Choreographer: Skipped 271 frames! The application may be doing too much work on its main thread.
03-22 13:01:39.907 25636-26150/com.smok.maps D/dalvikvm: GC_FOR_ALLOC freed 3903K, 19% free 27910K/34324K, paused 42ms, total 42ms
这是我所做的一项行动:
btUnselectAll.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
getActivity().runOnUiThread(new Runnable() {
@Override
public void run() {
// for (RowBean aRowBean_data : rowBeen) {
// aRowBean_data.setSelected(false);
// }
for (RowBean rowBean : Adapter.data) {
rowBean.setSelected(false);
}
adapter.notifyDataSetChanged();
for (ObjectDefExtends objectDefExtends : Singleton.getInstance().getListaODE()) {
objectDefExtends.visible = false;
editor.putInt(objectDefExtends.id.toString(), 0);
editor.apply();
}
}
});
您的
适配器中是否有大量数据
?这是适配器中@Wizard数据大小的重复项等于154当您仅围绕适配器包装runOnUiThread
时会发生什么情况。notifyDataSetChanged()
?从我所看到的情况来看,您的示例中的其他代码都不应该触及UI。上面的链接解释了您的代码中的错误。尽量减少一次要绑定的项目数。改为使用分页基础。您的适配器中是否有大量数据?这是适配器中@Wizard数据大小的重复项等于154当您仅围绕适配器包装runOnUiThread
时会发生什么情况。notifyDataSetChanged()
?从我所看到的情况来看,您的示例中的其他代码都不应该触及UI。上面的链接解释了您的代码中的错误。尽量减少一次要绑定的项目数。改用分页的funda。