我有一个列表视图,当列表视图中的项目被点击时,我使用AyscTask将详细信息保存到sqlite db,这是从listview的onitemclicklistener调用的。当用户随机点击许多项目应用程序崩溃时,app尝试以极其方式访问数据库。当用户足够快以在加载警报出现之前单击列表视图中的多个项目时,就会发生这种情况。
我该如何防止这种情况?我试图在listview的onitemclick方法中禁用listview,但它也没有用。
我的代码
//setting up the listview
ListView lv = (ListView) findViewById(android.R.id.list);
setListAdapter(new TypeArrayAdapter(TypeSelectActivity.this, R.layout.row_type, typeList));
lv.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
sectionid = Integer.parseInt(LocationWebService.incidentTypeSectionId
.get(arg2));
incidentid1 = Integer
.parseInt(LocationWebService.incidentTypeId
.get(arg2));
LocationWebService.IncidentTypeID = incidentid1;
LocationWebService.sectionID = sectionid;
new DBTasks().execute(arg2);
TextView tv=(TextView)arg1.findViewById(R.id.label_type);
TypeString=tv.getText().toString();
Log.v("TypeSelect", TypeString);
}
});
感谢您的提前时间。
答案 0 :(得分:0)
尝试使用禁用AsnykTask中的列表 - &gt; PreExecute
并在PostExecute
..