在市场上我有一个应用程序,有一个我似乎无法解决的错误。今天,我追踪到了以下方法。
public void updateDealList(ArrayList<Deal> deals) {
// first call or showing bookmakrs (also gets called other times when adapter is null)
if (dealListAdapter == null || showingBookmarks || !dealListAdapter.moreDealsToDownload()) {
dealListAdapter = new EndlessDealListAdapter(getActivity(),
R.layout.deal_list_item, deals);
setListAdapter(dealListAdapter);
listView = getListView();
if (getActivity().findViewById(R.id.right_fragment_container)!=null){ // if tablet
listView.setChoiceMode(ListView.CHOICE_MODE_SINGLE);
listView.setVerticalScrollbarPosition(View.SCROLLBAR_POSITION_LEFT);
}
showingBookmarks=false;
Log.d("UPDATE_DEAL_LIST", "Notified list created new" + dealListAdapter.getCount());
return; //PROBLEM OCCURS WHEN APP COMES IN HERE AFTER RESUMING
}
dealListAdapter.getDealListAdapter().clear();
for (Deal d: deals){
dealListAdapter.getDealListAdapter().add(d);
Log.d("UPDATE_DEAL_LIST", "added " + d.title);
}
dealListAdapter.notifyDataSetChanged();
Log.d("UPDATE_DEAL_LIST", "Notified list " + dealListAdapter.getCount());
}
此方法通过一个交易对象的阵列列表, 交易对象从互联网上被调走。 当应用程序首次打开时, 数据会从互联网上被调出, 并且上述方法被调用为 ListFrashment 设置新的适配器。 当用户要求更多交易时, 也使用此方法 。
我面临的问题是,列表有时会认为它空虚地忽略了包含交易的适配器。 当其设备内存率低时, 使用似乎会恢复应用程序( 我想部分应用程序已被清除了 ) 。 此方法被调用, 交易列表是空的, 从而创建了新的列表并添加了交易 。 尽管发生了这种情况, 列表还是空的, 用户必须强制关闭应用程序才能再次工作 。
下一行显示方法在输入是否输入时的标记, 并在适应器中添加21项交易。 不幸的是, 列表对用户是空的 。
05-23 01:52:32.879: D/UPDATE_DEAL_LIST(3478): Notified list created new21