2014-07-13 2 views
3

사용자 지정 어댑터에서 OpenHelperManager.releaseHelper();을 호출하는 가장 적절한 위치는 어디입니까?Android 사용자 지정 어댑터에서 OpenHelperManager.releaseHelper()를 호출하는 가장 적절한 위치

추가 컨텍스트의 경우이 어댑터는 ListView 인 조각으로 호출됩니다.

아래의 코드 스 니펫을 따르십시오.

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; 
    } 
} 

답변

3

글쎄, OpenHelperManager의 원 저자로서, 나는 그것을 사용하지 말 것을 강력히 권한다. 이제까지. 참조 카운팅이 필요 없으며 DB를 닫을 필요가 없습니다. OrmLiteSqliteOpenHelper를 직접 사용하십시오.

내 블로그 게시물, 내가 그 기사를 작성한 방법과 왜 필요하지 않은지 설명합니다. 그래서

http://touchlabblog.tumblr.com/post/24474750219/single-sqlite-connection

+0

다음 I는 그것을 [참조 문서]에서 그 시점 4.1.7 (취 http://ormlite.com/javadoc/ormlite-core/doc-files/ormlite_4.html#Use-With - 안드로이드)는 더 이상 적합하지 않습니까? – aroth

+2

@aroth 그래, 우리는 그 문서에 설명 된대로 사용하지 않습니다. 나는 그 문서들, btw를 유지하지 않는다. 나는 늦게까지 프로젝트에 슈퍼 관여하지 않았다. 그러나 예, 당신은 그 문서가 말하는 것에 대해 걱정할 필요가 없으며 관리자를 사용하지 않아도됩니다. –