I am using a ContentProvider to query a database and return a Cursor that is used in a CursorLoader:
ItemsActivity:
Mobile devices are not designed to handle these amounts of data.
However, if you really want to inflict such a large scrolling list on your poor users, you can design it as a virtual list where entries are loaded only on demand; see Android Endless List.
Note: Using the OFFSET clause is inefficient; see Scrolling Cursor for details.