Most visited

Recently visited

Added in API level 1

AbstractCursor

public abstract class AbstractCursor
extends Object implements CrossProcessCursor

java.lang.Object
   ↳ android.database.AbstractCursor
Known Direct Subclasses
Known Indirect Subclasses


这是一个抽象游标类,它处理所有游标需要处理的很多通用代码,并且为方便起见而提供。

Summary

Nested classes

class AbstractCursor.SelfContentObserver

游标使用此类来跟踪其他人对其URI所做的更改。

Inherited constants

From interface android.database.Cursor

Fields

protected boolean mClosed

此字段在API级别23中已弃用。请改为使用isClosed()

protected ContentResolver mContentResolver

此字段在API级别23中已弃用。请勿使用。

protected int mPos

此字段在API级别23中已弃用。请改用getPosition()

Public constructors

AbstractCursor()

Public methods

void close()

关闭光标,释放其所有资源并使其完全无效。

void copyStringToBuffer(int columnIndex, CharArrayBuffer buffer)

检索请求的列文本并将其存储在提供的缓冲区中。

void deactivate()

取消激活光标,使所有调用失败,直到调用 requery()

void fillWindow(int position, CursorWindow window)

将光标数据复制到窗口中。

byte[] getBlob(int column)

以字节数组的形式返回请求的列的值。

int getColumnCount()

返回总列数

int getColumnIndex(String columnName)

返回给定列名称的从零开始的索引,如果该列不存在,则返回-1。

int getColumnIndexOrThrow(String columnName)

返回给定列名称的从零开始的索引,如果该列不存在则返回 IllegalArgumentException

String getColumnName(int columnIndex)

返回给定的从零开始的列索引处的列名称。

abstract String[] getColumnNames()

以结果中列出的顺序返回一个字符串数组,其中包含结果集中所有列的名称。

abstract int getCount()

返回游标中的行数。

abstract double getDouble(int column)

以double形式返回请求的列的值。

Bundle getExtras()

返回一组额外的值。

abstract float getFloat(int column)

以浮点形式返回请求的列的值。

abstract int getInt(int column)

以int形式返回请求的列的值。

abstract long getLong(int column)

以long形式返回请求列的值。

Uri getNotificationUri()

返回此游标数据中的更改通知将传递的URI,如先前由 setNotificationUri(ContentResolver, Uri)设置的 setNotificationUri(ContentResolver, Uri)

final int getPosition()

返回行集合中光标的当前位置。

abstract short getShort(int column)

以短为单位返回请求列的值。

abstract String getString(int column)

以String形式返回请求的列的值。

int getType(int column)

返回给定列值的数据类型。

boolean getWantsAllOnMoveCalls()

如果此方法返回true,onMove()将仅在进程间调用。

CursorWindow getWindow()

如果游标由 CursorWindow支持,则返回一个预填充窗口,其中包含游标的内容,否则返回null。

final boolean isAfterLast()

返回指针是否指向最后一行之后的位置。

final boolean isBeforeFirst()

返回光标是否指向第一行之前的位置。

boolean isClosed()

如果光标关闭,则返回true

final boolean isFirst()

返回光标是否指向第一行。

final boolean isLast()

返回指针是否指向最后一行。

abstract boolean isNull(int column)

如果指定列中的值为空,则返回 true

final boolean move(int offset)

从当前位置向前或向后移动光标相对量。

final boolean moveToFirst()

将光标移到第一行。

final boolean moveToLast()

将光标移到最后一行。

final boolean moveToNext()

将光标移到下一行。

final boolean moveToPosition(int position)

将光标移到绝对位置。

final boolean moveToPrevious()

将光标移到上一行。

boolean onMove(int oldPosition, int newPosition)

每次将光标成功滚动到新位置时都会调用此函数,从而使子类有机会更新其可能具有的任何状态。

void registerContentObserver(ContentObserver observer)

注册一个观察者,当支持该游标的内容发生更改时调用该观察者。

void registerDataSetObserver(DataSetObserver observer)

注册时的变化发生在该光标数据集的内容被称为,例如一个观察者,当数据集通过改变 requery()deactivate() ,或 close()

boolean requery()

执行再次创建光标的查询,刷新其内容。

Bundle respond(Bundle extras)

这是光标与光标通信的用户的一种带外方式。

void setExtras(Bundle extras)

设置 Bundle返回的 getExtras()

void setNotificationUri(ContentResolver cr, Uri notifyUri)

指定要监视更改的内容URI。

void unregisterContentObserver(ContentObserver observer)

通过 registerContentObserver(ContentObserver)取消注册先前已使用此光标注册的观察者。

void unregisterDataSetObserver(DataSetObserver observer)

通过 registerContentObserver(ContentObserver)取消注册先前已使用此光标注册的观察者。

Protected methods

void checkPosition()

如果光标位置超出范围,则此函数将引发CursorIndexOutOfBoundsException。

void finalize()

当垃圾收集确定没有更多对该对象的引用时,由对象上的垃圾回收器调用。

Object getUpdatedField(int columnIndex)

此方法在API级别11中已被弃用。始终返回null,因为游标不支持更新行

boolean isFieldUpdated(int columnIndex)

此方法在API级别11中已弃用。由于游标不支持更新行,因此始终返回false

void onChange(boolean selfChange)

子类在完成提交更新以通知所有观察者时必须调用此方法。

Inherited methods

From class java.lang.Object
From interface android.database.CrossProcessCursor
From interface android.database.Cursor
From interface java.io.Closeable
From interface java.lang.AutoCloseable

Fields

mClosed

Added in API level 1
boolean mClosed

此字段在API级别23中已被弃用。
改为使用isClosed()

mContentResolver

Added in API level 1
ContentResolver mContentResolver

此字段在API级别23中已被弃用。
不使用。

mPos

Added in API level 1
int mPos

此字段在API级别23中已被弃用。
改为使用getPosition()

Public constructors

AbstractCursor

Added in API level 1
AbstractCursor ()

Public methods

close

Added in API level 1
void close ()

关闭光标,释放其所有资源并使其完全无效。 deactivate()不同,调用requery()不会使光标再次有效。

copyStringToBuffer

Added in API level 1
void copyStringToBuffer (int columnIndex, 
                CharArrayBuffer buffer)

检索请求的列文本并将其存储在提供的缓冲区中。 如果缓冲区大小不够,将分配一个新的字符缓冲区并分配给CharArrayBuffer.data

Parameters
columnIndex int: the zero-based index of the target column. if the target column is null, return buffer
buffer CharArrayBuffer: the buffer to copy the text into.

deactivate

Added in API level 1
void deactivate ()

取消激活光标,使所有调用失败,直到调用requery() 非活动游标使用比活动游标更少的资源。 调用requery()将使光标再次处于活动状态。

fillWindow

Added in API level 1
void fillWindow (int position, 
                CursorWindow window)

将光标数据复制到窗口中。

清除窗口并用从请求行位置开始的数据填充窗口,直到光标中的所有数据都用尽或窗口用尽空间。

填充的窗口使用与原始光标相同的行索引。 例如,如果从光标的第5行开始填充窗口,则可以通过询问第5行来从窗口查询第5行的内容,因为光标所使用的行索引与第5行之间存在直接对应关系窗口。

光标的当前位置(由 getPosition()返回)不会被此方法更改。

Parameters
position int: The zero-based index of the first row to copy into the window.
window CursorWindow: The window to fill.

getBlob

Added in API level 1
byte[] getBlob (int column)

以字节数组的形式返回请求的列的值。

结果以及当列值为空或列类型不是blob类型时此方法是否引发异常是实现定义的。

Parameters
column int: the zero-based index of the target column.
Returns
byte[] the value of that column as a byte array.

getColumnCount

Added in API level 1
int getColumnCount ()

返回总列数

Returns
int number of columns

getColumnIndex

Added in API level 1
int getColumnIndex (String columnName)

返回给定列名称的从零开始的索引,如果该列不存在,则返回-1。 如果您希望该列存在, getColumnIndexOrThrow(String)改为使用getColumnIndexOrThrow(String) ,这会使错误更加清晰。

Parameters
columnName String: the name of the target column.
Returns
int the zero-based column index for the given column name, or -1 if the column name does not exist.

getColumnIndexOrThrow

Added in API level 1
int getColumnIndexOrThrow (String columnName)

返回给定列名称的从零开始的索引,如果该列不存在则返回IllegalArgumentException 如果您不确定列是否存在或者不使用getColumnIndex(String)并检查-1,这比捕获异常更有效。

Parameters
columnName String: the name of the target column.
Returns
int the zero-based column index for the given column name

getColumnName

Added in API level 1
String getColumnName (int columnIndex)

返回给定的从零开始的列索引处的列名称。

Parameters
columnIndex int: the zero-based index of the target column.
Returns
String the column name for the given column index.

getColumnNames

Added in API level 1
String[] getColumnNames ()

以结果中列出的顺序返回一个字符串数组,其中包含结果集中所有列的名称。

Returns
String[] the names of the columns returned in this query.

getCount

Added in API level 1
int getCount ()

返回游标中的行数。

Returns
int the number of rows in the cursor.

getDouble

Added in API level 1
double getDouble (int column)

以double形式返回请求的列的值。

结果以及此方法在列值为空,列类型不是浮点类型或浮点值不可表示时引发异常,或者由于实现定义了 double值,因此浮点值不可表示。

Parameters
column int: the zero-based index of the target column.
Returns
double the value of that column as a double.

getExtras

Added in API level 1
Bundle getExtras ()

返回一组额外的值。 这是光标向用户提供带外元数据的可选方式。 其中一种用途是报告为游标提取数据所需的网络请求的进度。

这些值只有在调用重新查询时才会更改。

Returns
Bundle cursor-defined values, or Bundle.EMPTY if there are no values. Never null.

getFloat

Added in API level 1
float getFloat (int column)

以浮点形式返回请求的列的值。

结果以及当列值为空,列类型不是浮点类型或浮点值不可表示时,此方法引发异常,或者由于实现定义了 float值,因此浮点值不可表示。

Parameters
column int: the zero-based index of the target column.
Returns
float the value of that column as a float.

getInt

Added in API level 1
int getInt (int column)

以int形式返回请求的列的值。

结果,这种方法是否抛出异常当列值为空,列类型是不是一个整数类型,或者整数值是范围[外 Integer.MIN_VALUEInteger.MAX_VALUE ]为实现定义的。

Parameters
column int: the zero-based index of the target column.
Returns
int the value of that column as an int.

getLong

Added in API level 1
long getLong (int column)

以long形式返回请求列的值。

结果,这种方法是否抛出异常当列值为空,列类型是不是一个整数类型,或者整数值是范围[外 Long.MIN_VALUELong.MAX_VALUE ]为实现定义的。

Parameters
column int: the zero-based index of the target column.
Returns
long the value of that column as a long.

getNotificationUri

Added in API level 11
Uri getNotificationUri ()

返回此游标数据中的更改通知将传递的URI,如先前由 setNotificationUri(ContentResolver, Uri)设置的 setNotificationUri(ContentResolver, Uri)

Returns
Uri Returns a URI that can be used with ContentResolver.registerContentObserver to find out about changes to this Cursor's data. May be null if no notification URI has been set.

getPosition

Added in API level 1
int getPosition ()

返回行集合中光标的当前位置。 该值是从零开始的。 当行集合第一次返回时,游标将位于第一行之前的位置-1。 在返回最后一行之后,对next()的另一次调用将使游标超过最后一个条目,位于count()的位置。

Returns
int the current cursor position.

getShort

Added in API level 1
short getShort (int column)

以短为单位返回请求列的值。

结果,这种方法是否抛出异常当列值为空,列类型是不是一个整数类型,或者整数值是范围[外 Short.MIN_VALUEShort.MAX_VALUE ]为实现定义的。

Parameters
column int: the zero-based index of the target column.
Returns
short the value of that column as a short.

getString

Added in API level 1
String getString (int column)

以String形式返回请求的列的值。

结果以及此方法在列值为空或列类型不是字符串类型时是否引发异常是实现定义的。

Parameters
column int: the zero-based index of the target column.
Returns
String the value of that column as a String.

getType

Added in API level 11
int getType (int column)

返回给定列值的数据类型。 列的首选类型将返回,但数据可能会转换为其他类型,如获取类型方法(如getFloat(int)等)中getInt(int) getFloat(int)

返回的列类型是

Parameters
column int: the zero-based index of the target column.
Returns
int column value type

getWantsAllOnMoveCalls

Added in API level 1
boolean getWantsAllOnMoveCalls ()

如果此方法返回true,onMove()将仅在进程间调用。

Returns
boolean whether all cursor movement should result in a call to onMove().

getWindow

Added in API level 1
CursorWindow getWindow ()

如果光标由 CursorWindow支持,则返回一个预填充窗口,其中包含游标的内容,否则返回null。

Returns
CursorWindow The pre-filled window that backs this cursor, or null if none.

isAfterLast

Added in API level 1
boolean isAfterLast ()

返回指针是否指向最后一行之后的位置。

Returns
boolean whether the cursor is after the last result.

isBeforeFirst

Added in API level 1
boolean isBeforeFirst ()

返回光标是否指向第一行之前的位置。

Returns
boolean whether the cursor is before the first result.

isClosed

Added in API level 1
boolean isClosed ()

如果光标关闭,则返回true

Returns
boolean true if the cursor is closed.

isFirst

Added in API level 1
boolean isFirst ()

返回光标是否指向第一行。

Returns
boolean whether the cursor is pointing at the first entry.

isLast

Added in API level 1
boolean isLast ()

返回指针是否指向最后一行。

Returns
boolean whether the cursor is pointing at the last entry.

isNull

Added in API level 1
boolean isNull (int column)

如果指定列中的值为空,则返回 true

Parameters
column int: the zero-based index of the target column.
Returns
boolean whether the column value is null.

move

Added in API level 1
boolean move (int offset)

从当前位置向前或向后移动光标相对量。 正偏移向前移动,负偏移向后移动。 如果最终位置超出结果集的范围,则结果位置将分别固定为-1或count(),具体取决于值是否在集合的前面或结尾。

如果请求的目标可达,此方法将返回true,否则返回false。 例如,如果游标当前位于结果集的第二个条目中,并且调用move(-5),则该位置将被固定为-1,并且返回false。

Parameters
offset int: the offset to be applied from the current position.
Returns
boolean whether the requested move fully succeeded.

moveToFirst

Added in API level 1
boolean moveToFirst ()

将光标移到第一行。

如果光标为空,则此方法将返回false。

Returns
boolean whether the move succeeded.

moveToLast

Added in API level 1
boolean moveToLast ()

将光标移到最后一行。

如果光标为空,则此方法将返回false。

Returns
boolean whether the move succeeded.

moveToNext

Added in API level 1
boolean moveToNext ()

将光标移到下一行。

如果游标已经超过结果集中的最后一个条目,则此方法将返回false。

Returns
boolean whether the move succeeded.

moveToPosition

Added in API level 1
boolean moveToPosition (int position)

将光标移到绝对位置。 值的有效范围是-1 <= position <= count。

如果请求目标可达,此方法将返回true,否则返回false。

Parameters
position int: the zero-based position to move to.
Returns
boolean whether the requested move fully succeeded.

moveToPrevious

Added in API level 1
boolean moveToPrevious ()

将光标移到上一行。

如果游标已经在结果集中的第一个条目之前,此方法将返回false。

Returns
boolean whether the move succeeded.

onMove

Added in API level 1
boolean onMove (int oldPosition, 
                int newPosition)

每次将光标成功滚动到新位置时都会调用此函数,从而使子类有机会更新其可能具有的任何状态。 如果它返回false,移动功能也会这样做,并且光标将滚动到beforeFirst位置。

Parameters
oldPosition int: the position that we're moving from
newPosition int: the position that we're moving to
Returns
boolean true if the move is successful, false otherwise

registerContentObserver

Added in API level 1
void registerContentObserver (ContentObserver observer)

注册一个观察者,当支持该游标的内容发生更改时调用该观察者。 通常情况下, requery()在调用requery()之前,数据集才会更改。

Parameters
observer ContentObserver: the object that gets notified when the content backing the cursor changes.

registerDataSetObserver

Added in API level 1
void registerDataSetObserver (DataSetObserver observer)

注册时的变化发生在该光标数据集的内容被称为,例如一个观察者,当数据集通过改变 requery()deactivate() ,或 close()

Parameters
observer DataSetObserver: the object that gets notified when the cursors data set changes.

requery

Added in API level 1
boolean requery ()

执行再次创建光标的查询,刷新其内容。 这可以随时完成,包括在致电deactivate() 由于此方法可能会在数据库上执行查询并可能需要一段时间,因此如果在Main(UI)线程上调用该方法,则可能会导致ANR。 如果在主线程上执行此方法,则会打印警告。

Returns
boolean true if the requery succeeded, false if not, in which case the cursor becomes invalid.

respond

Added in API level 1
Bundle respond (Bundle extras)

这是光标与光标通信的用户的一种带外方式。 每个束的结构完全由光标定义。

其中一个用途是告诉游标在报告错误后应该重试网络请求。

Parameters
extras Bundle: extra values, or Bundle.EMPTY. Never null.
Returns
Bundle extra values, or Bundle.EMPTY. Never null.

setExtras

Added in API level 23
void setExtras (Bundle extras)

设置 Bundle返回的 getExtras()

Parameters
extras Bundle: Bundle to set, or null to set an empty bundle.

setNotificationUri

Added in API level 1
void setNotificationUri (ContentResolver cr, 
                Uri notifyUri)

指定要监视更改的内容URI。

Parameters
cr ContentResolver: The content resolver from the caller's context.
notifyUri Uri: The URI to watch for changes. This can be a specific row URI, or a base URI for a whole class of content.

unregisterContentObserver

Added in API level 1
void unregisterContentObserver (ContentObserver observer)

通过 registerContentObserver(ContentObserver)取消注册先前已通过此光标注册的观察者。

Parameters
observer ContentObserver: the object to unregister.

unregisterDataSetObserver

Added in API level 1
void unregisterDataSetObserver (DataSetObserver observer)

通过 registerContentObserver(ContentObserver)取消注册先前已使用此光标注册的观察者。

Parameters
observer DataSetObserver: the object to unregister.

Protected methods

checkPosition

Added in API level 1
void checkPosition ()

如果光标位置超出范围,则此函数将引发CursorIndexOutOfBoundsException。 get函数的子类实现应该在尝试检索数据之前调用它。

Throws
CursorIndexOutOfBoundsException

finalize

Added in API level 1
void finalize ()

当垃圾收集确定没有更多对该对象的引用时,由对象上的垃圾回收器调用。 子类会覆盖finalize方法来处置系统资源或执行其他清理。

的常规协定finalize是,它被调用,如果当在Java TM虚拟机已确定不再有由该目的可以通过还没有死亡,除了作为一个动作的结果的任何线程访问的任何手段取决于某些其他可以完成的对象或类别的最终定稿。 方法finalize可以采取任何行动,包括使这个对象再次可用于其他线程; 然而, finalize的通常目的是在对象被不可撤销地丢弃之前执行清理操作。 例如,表示输入/输出连接的对象的finalize方法可能会执行显式I / O事务,以在永久丢弃该对象之前中断连接。

finalize方法Object执行特殊的操作; 它只是正常返回。 Object子类可能会覆盖此定义。

Java编程语言不保证哪个线程将为任何给定对象调用finalize方法。 但是,保证调用finalize的线程在调用finalize时不会保留任何用户可见的同步锁。 如果finalize方法引发未捕获的异常,则忽略该异常,并终止该对象的终止。

在针对某个对象调用 finalize方法之后,在Java虚拟机再次确定不再有任何方法可以通过尚未死亡的任何线程访问此对象,包括可能的操作通过准备完成的其他对象或类别,此时该对象可能被丢弃。

对于任何给定的对象,Java虚拟机永远不会多次调用 finalize方法。

finalize方法引发的任何异常 finalize导致终止此对象的终止,但会被忽略。

getUpdatedField

Added in API level 1
Object getUpdatedField (int columnIndex)

此方法在API级别11中已弃用。
始终返回null,因为游标不支持更新行

Parameters
columnIndex int
Returns
Object

isFieldUpdated

Added in API level 1
boolean isFieldUpdated (int columnIndex)

此方法在API级别11中已弃用。
由于游标不支持更新行,因此始终返回false

Parameters
columnIndex int
Returns
boolean

onChange

Added in API level 1
void onChange (boolean selfChange)

子类在完成提交更新以通知所有观察者时必须调用此方法。

Hooray!