public abstract static class AsyncListUtil.DataCallback<T> extends Object
AsyncListUtil
.
All methods are called on the background thread.
Constructor and Description |
---|
DataCallback() |
Modifier and Type | Method and Description |
---|---|
abstract void |
fillData(T[] data,
int startPosition,
int itemCount)
Fill the given tile.
|
int |
getMaxCachedTiles()
Returns tile cache size limit (in tiles).
|
void |
recycleData(T[] data,
int itemCount)
Recycle the objects created in
fillData(T[], int, int) if necessary. |
abstract int |
refreshData()
Refresh the data set and return the new data item count.
|
@WorkerThread public abstract int refreshData()
If the data is being accessed through Cursor
this is where
the new cursor should be created.
@WorkerThread public abstract void fillData(T[] data, int startPosition, int itemCount)
The provided tile might be a recycled tile, in which case it will already have objects. It is suggested to re-use these objects if possible in your use case.
startPosition
- The start position in the list.itemCount
- The data item count.data
- The data item array to fill into. Should not be accessed beyond
itemCount
.@WorkerThread public void recycleData(T[] data, int itemCount)
fillData(T[], int, int)
if necessary.data
- Array of data items. Should not be accessed beyond itemCount
.itemCount
- The data item count.@WorkerThread public int getMaxCachedTiles()
The actual number of cached tiles will be the maximum of this value and the number of
tiles that is required to cover the range returned by
AsyncListUtil.ViewCallback.extendRangeInto(int[], int[], int)
.
For example, if this method returns 10, and the most
recent call to AsyncListUtil.ViewCallback.extendRangeInto(int[], int[], int)
returned
{100, 179}, and the tile size is 5, then the maximum number of cached tiles will be 16.
However, if the tile size is 20, then the maximum number of cached tiles will be 10.
The default implementation returns 10.