光标删除不像预期的那样工作

时间:2017-02-28 12:22:39

标签: android

我有循环器视图,已实现滑动以使用撤消按钮删除。因此,当我离开活动时,我必须删除所有待处理的删除项目。 我用这种方法做到了:

public void removeAllPendingRemoval() {
    isOnScreen = false;
    for (int i = 0; i < mPendingRunnables.size(); i++) {
        long id = mPendingRunnables.keyAt(i);
        Runnable pendingRemovalRunnable = mPendingRunnables.get(id);
        mHandler.removeCallbacks(pendingRemovalRunnable);
        removeById(id);
    }
    notifyDataSetChanged();        
}

private void removeById(long id) {
    Uri uriWithId = Uri.withAppendedPath(mContentUriWithTable, String.valueOf(id));
    mContext.getContentResolver().delete(uriWithId, null, null);
    mPendingRunnables.remove(id);
    if (isOnScreen) {
        int position = getPositionById(id);
        notifyItemRemoved(position);            
    }
}

我在我的活动的onPause方法中调用removeAllPendingRemoval()。但是,如果我快速切换到使用相同db表的另一个活动,则必须已删除项目。如果我等待一段时间或重新开放活动,他们将被删除。我通过调用removeAllPendingRemoval()2次解决了这个问题:

@Override
protected void onPause() {
    mAdapter.removeAllPendingRemoval();
    mAdapter.removeAllPendingRemoval();
    super.onPause();
}

但这似乎是非常糟糕的做法。我该如何处理这个问题?

0 个答案:

没有答案