在自定义适配器中调用 OpenHelperManager.releaseHelper();
的最合适位置。
对于其他上下文,此适配器在带有 ListView
的 fragment 中被调用。
按照下面的代码 fragment 进行操作。
public class CustomAdapter extends BaseAdapter {
private DatabaseHelper mDatabaseHelper;
private RuntimeExceptionDao<SomeObject, Long> dao;
private List<SomeObject> mList;
private Context context;
public CustomAdapter(Context context) {
this.context = context;
mDatabaseHelper = OpenHelperManager.getHelper(context, DatabaseHelper.class);
dao = mDatabaseHelper.getRuntimeExceptionDao();
mList = dao.queryForAll();
}
@Override
public int getCount() {
return mList.size();
}
@Override
public Object getItem(int position) {
return mList.get(position);
}
@Override
public long getItemId(int position) {
return mList.get(position).getId();
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
LayoutInflater layoutInflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View row = layoutInflater.inflate(R.layout.item, parent, false);
TextView title = (TextView) row.findViewById(R.id.txtTitle);
SomeObject obj = mList.get(position);
title.setText(obj.getTitle());
return row;
}
}
最佳答案
嗯,作为 OpenHelperManager 的原作者,我强烈建议您不要使用它。曾经。您不需要引用计数,也不需要关闭您的数据库。直接使用 OrmLiteSqliteOpenHelper。
我的博文,我在其中解释了我是如何写那个东西的,以及为什么你不需要它。
http://touchlabblog.tumblr.com/post/24474750219/single-sqlite-connection
关于android - 在 android 自定义适配器中调用 OpenHelperManager.releaseHelper() 的最合适位置在哪里,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24718942/