Как обновить просмотр списка, данные которого запрашивались из базы данных через SimpleCursorAdapter?

Я хочу показать элементы, запрашиваемые из базы данных, в виде списка с помощью SimpleCursorAdapter. Например, в базе данных может быть 20 000 элементов. Я хочу просто загрузить 100 запрашиваемых элементов (_id: 1-100) вместо загрузки всех элементов, при прокрутке в конце списка просмотра загрузить еще 100 запрашиваемых элементов (_id: 101-200), как этого добиться? Любое предложение приветствуется, спасибо.

Относительные коды следующие:

protected void onCreate(Bundle savedInstanceState) {
    mCursor = managedQuery(CONTENT_URI, PROJECTION, null, null, "_id DESC");
    mAdapter = new SimpleCursorAdapter(this,R.layout.list_content,  mCursor, keys,  values);
    setListAdapter(mAdapter);
}

В моем определенном списке, я хочу загрузить больше элементов по базе данных запросов.

public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) 
{
    int lastItem = firstVisibleItem + visibleItemCount - 1;

    if (mListAdapter != null) {
        if ((lastItem == mListAdapter.getCount()-1) && (mRefreshState != REFRESHING)) {
            mFooterView.setVisibility(View.VISIBLE);
            mRefreshState = REFRESHING;
            new Handler().postDelayed(new Runnable() {  
                public void run() {  
                    //execute the task ,  i want to load more items by query database
                    RefreshListView(LOADING_STORED_INFO);                                           
                }  
             }, DEFAULT_DELAY_TIMER);           
        }
    }
}

В AsyncTask загрузки данных я делаю операцию запроса.

    protected Integer doInBackground(Integer... params)
    { 
        Uri uri = ContentUris.withAppendedId(CONTENT_URI, mCursor.getInt(0)-1);
        cursor = managedQuery(uri, PROJECTION, null, null, "_id DESC");
        return (0 == params[0]) ? 1 : 0;
    }

    @Override
    protected void onPostExecute(Integer result)
    {
        mAdapter.changeCursor(cursor);//is this OK?
        mAdapter.notifyDataSetChanged();
        /*
        if (1 == result)
        {
            mListView.setSelection(1);
        }
        else
        {
            mListView.setSelection(mCount-1);               
        }*/
        // Call onRefreshComplete when the list has been refreshed.
        mListView.onRefreshComplete(result); 
        super.onPostExecute(result);
    } 

Ответы на вопрос(1)

Ваш ответ на вопрос