国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計 > 正文

CursorAdapter監(jiān)聽數(shù)據(jù)變化通知界面刷新

2019-11-06 09:35:03
字體:
供稿:網(wǎng)友

ContentObserver 監(jiān)聽數(shù)據(jù)庫變化

AbstractCursor.setNotificationUri(ContentResolver cr, Uri notifyUri) -> ContentResolver.registerContentObserver(Uri uri, boolean notifyForDescendents, ContentObserver observer, int userHandle)AbstractCursor.registerContentObserver(ContentObserver observer)SelfContentObserver.onChange(boolean selfChange) -> AbstractCursor.(boolean selfChange)

DataSetObserver 監(jiān)聽cursor close/deactivate/requery

AbstractCursor.registerDataSetObserver(DataSetObserver observer)AbstractCursor.close() / deactivate() -> AbstractCursor.onDeactivateOrClose() -> DataSetObservable.notifyInvalidated()AbstractCursor.requery() -> DataSetObservable.notifyChanged()

notifyDataSetChanged 與 notifyDataSetInvalidated 區(qū)別 (@AdapterView.java): 前者會保留listview的部分狀態(tài),而后者會重置listview的狀態(tài)

class AdapterDataSetObserver extends DataSetObserver { PRivate Parcelable mInstanceState = null; @Override public void onChanged() { mDataChanged = true; mOldItemCount = mItemCount; mItemCount = getAdapter().getCount(); // Detect the case where a cursor that was previously invalidated has // been repopulated with new data. if (AdapterView.this.getAdapter().hasStableIds() && mInstanceState != null && mOldItemCount == 0 && mItemCount > 0) { AdapterView.this.onRestoreInstanceState(mInstanceState); mInstanceState = null; } else { rememberSyncState(); } checkFocus(); requestLayout(); } @Override public void onInvalidated() { mDataChanged = true; if (AdapterView.this.getAdapter().hasStableIds()) { // Remember the current state for the case where our hosting activity is being // stopped and later restarted mInstanceState = AdapterView.this.onSaveInstanceState(); } // Data is invalid so we should reset our state mOldItemCount = mItemCount; mItemCount = 0; mSelectedPosition = INVALID_POSITION; mSelectedRowId = INVALID_ROW_ID; mNextSelectedPosition = INVALID_POSITION; mNextSelectedRowId = INVALID_ROW_ID; mNeedSync = false; checkFocus(); requestLayout(); } public void clearSavedState() { mInstanceState = null; } }
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 桃园市| 塘沽区| 贵阳市| 井陉县| 桦甸市| 无极县| 漯河市| 潮安县| 法库县| 衡山县| 夹江县| 黑水县| 景德镇市| 曲周县| 远安县| 吴忠市| 通州区| 湖北省| 鲁甸县| 南漳县| 潞城市| 贵南县| 商丘市| 黄浦区| 富宁县| 溧阳市| 茌平县| 班玛县| 土默特左旗| 于田县| 沧源| 拜泉县| 古田县| 琼海市| 攀枝花市| 湘潭市| 盐池县| 长海县| 湖州市| 双柏县| 吴堡县|