¿Cómo actualizar la vista de lista cuyos datos se consultaron desde la base de datos a través de SimpleCursorAdapter?

Quiero mostrar los elementos consultados desde la base de datos en la vista de lista con SimpleCursorAdapter. Por ejemplo, puede haber 20,000 artículos en la base de datos. Solo quiero cargar 100 elementos (_id: 1-100) consultados en lugar de cargar todos los elementos, al desplazarme al final de la vista de lista, cargar otros 100 elementos (_id: 101-200) consultados, ¿cómo lograrlo? Cualquier sugerencia es bienvenida, gracias.

Los códigos relativos son los siguientes:

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

En mi vista de lista definida, quiero cargar más elementos por base de datos de consulta.

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

En los datos de carga de AsyncTask, realizo la operación de consulta.

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

Respuestas a la pregunta(2)

Su respuesta a la pregunta