【发布时间】:2019-02-05 10:04:47
【问题描述】:
我试图了解我需要使用的 RecyclerView.Adapter 实现,其中数据集是 Cursor 对象。
但是对于关闭 Cursor 对象并将其设置为不同的值,我不清楚某些逻辑。
close() 中到底发生了什么?
这个可以吗。 ?
public void setCursor(Cursor cursor){
mCursor.unregisterContentObserver(mMyContentObserverr);
mCursor.close();
mCursor = cursor;
mCursor.registerContentObserver(mMyContentObserverr);
notifyDataSetChanged();
}
或者我应该像这样安全地玩:
public void setCursor(Cursor cursor){
Cursor oldCursor = mCursor;
oldCursor.unregisterContentObserver(mMyContentObserverr);
oldCursor.close();
mCursor = cursor;
mCursor.registerContentObserver(mMyContentObserverr);
notifyDataSetChanged();
}
使用 oldCursor 有什么好处?
在同一个 Cursor 对象上关闭和设置有什么危险吗?
谢谢
【问题讨论】:
标签: java android android-recyclerview android-cursoradapter android-cursor