Cursor.java revision 820e9b6b9cea6cce8115339dd774cdc273c4d6da
19066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* 29066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Copyright (C) 2006 The Android Open Source Project 39066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 49066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Licensed under the Apache License, Version 2.0 (the "License"); 59066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * you may not use this file except in compliance with the License. 69066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * You may obtain a copy of the License at 79066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 89066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * http://www.apache.org/licenses/LICENSE-2.0 99066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Unless required by applicable law or agreed to in writing, software 119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * distributed under the License is distributed on an "AS IS" BASIS, 129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * See the License for the specific language governing permissions and 149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * limitations under the License. 159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectpackage android.database; 189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.content.ContentResolver; 209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.net.Uri; 219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.os.Bundle; 229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/** 249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * This interface provides random read-write access to the result set returned 259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * by a database query. 26f3ca9a5c7e87319c934b5815566054d2e5c2085fJeff Hamilton * 27f3ca9a5c7e87319c934b5815566054d2e5c2085fJeff Hamilton * Cursor implementations are not required to be synchronized so code using a Cursor from multiple 28f3ca9a5c7e87319c934b5815566054d2e5c2085fJeff Hamilton * threads should perform its own synchronization when using the Cursor. 299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectpublic interface Cursor { 318b0dd7da360d70920a37802eb455ba41500d3b45Vasu Nori /* 328b0dd7da360d70920a37802eb455ba41500d3b45Vasu Nori * Values returned by {@link #getType(int)}. 338b0dd7da360d70920a37802eb455ba41500d3b45Vasu Nori * These should be consistent with the corresponding types defined in CursorWindow.h 348b0dd7da360d70920a37802eb455ba41500d3b45Vasu Nori */ 358b0dd7da360d70920a37802eb455ba41500d3b45Vasu Nori /** Value returned by {@link #getType(int)} if the specified column is null */ 368b0dd7da360d70920a37802eb455ba41500d3b45Vasu Nori static final int FIELD_TYPE_NULL = 0; 378b0dd7da360d70920a37802eb455ba41500d3b45Vasu Nori 388b0dd7da360d70920a37802eb455ba41500d3b45Vasu Nori /** Value returned by {@link #getType(int)} if the specified column type is integer */ 398b0dd7da360d70920a37802eb455ba41500d3b45Vasu Nori static final int FIELD_TYPE_INTEGER = 1; 408b0dd7da360d70920a37802eb455ba41500d3b45Vasu Nori 418b0dd7da360d70920a37802eb455ba41500d3b45Vasu Nori /** Value returned by {@link #getType(int)} if the specified column type is float */ 428b0dd7da360d70920a37802eb455ba41500d3b45Vasu Nori static final int FIELD_TYPE_FLOAT = 2; 438b0dd7da360d70920a37802eb455ba41500d3b45Vasu Nori 448b0dd7da360d70920a37802eb455ba41500d3b45Vasu Nori /** Value returned by {@link #getType(int)} if the specified column type is string */ 458b0dd7da360d70920a37802eb455ba41500d3b45Vasu Nori static final int FIELD_TYPE_STRING = 3; 468b0dd7da360d70920a37802eb455ba41500d3b45Vasu Nori 478b0dd7da360d70920a37802eb455ba41500d3b45Vasu Nori /** Value returned by {@link #getType(int)} if the specified column type is blob */ 488b0dd7da360d70920a37802eb455ba41500d3b45Vasu Nori static final int FIELD_TYPE_BLOB = 4; 498b0dd7da360d70920a37802eb455ba41500d3b45Vasu Nori 509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Returns the numbers of rows in the cursor. 529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return the number of rows in the cursor. 549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int getCount(); 569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Returns the current position of the cursor in the row set. 599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * The value is zero-based. When the row set is first returned the cursor 609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * will be at positon -1, which is before the first row. After the 619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * last row is returned another call to next() will leave the cursor past 629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * the last entry, at a position of count(). 639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return the current cursor position. 659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int getPosition(); 679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Move the cursor by a relative amount, forward or backward, from the 709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * current position. Positive offsets move forwards, negative offsets move 719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * backwards. If the final position is outside of the bounds of the result 729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * set then the resultant position will be pinned to -1 or count() depending 739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * on whether the value is off the front or end of the set, respectively. 749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * <p>This method will return true if the requested destination was 769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * reachable, otherwise, it returns false. For example, if the cursor is at 779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * currently on the second entry in the result set and move(-5) is called, 789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * the position will be pinned at -1, and false will be returned. 799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param offset the offset to be applied from the current position. 819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return whether the requested move fully succeeded. 829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project boolean move(int offset); 849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Move the cursor to an absolute position. The valid 879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * range of values is -1 <= position <= count. 889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * <p>This method will return true if the request destination was reachable, 909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * otherwise, it returns false. 919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param position the zero-based position to move to. 939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return whether the requested move fully succeeded. 949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project boolean moveToPosition(int position); 969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Move the cursor to the first row. 999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 1009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * <p>This method will return false if the cursor is empty. 1019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 1029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return whether the move succeeded. 1039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 1049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project boolean moveToFirst(); 1059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 1079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Move the cursor to the last row. 1089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 1099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * <p>This method will return false if the cursor is empty. 1109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 1119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return whether the move succeeded. 1129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 1139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project boolean moveToLast(); 1149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 1169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Move the cursor to the next row. 1179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 1189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * <p>This method will return false if the cursor is already past the 1199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * last entry in the result set. 1209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 1219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return whether the move succeeded. 1229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 1239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project boolean moveToNext(); 1249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 1269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Move the cursor to the previous row. 1279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 1289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * <p>This method will return false if the cursor is already before the 1299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * first entry in the result set. 1309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 1319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return whether the move succeeded. 1329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 1339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project boolean moveToPrevious(); 1349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 1369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Returns whether the cursor is pointing to the first row. 1379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 1389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return whether the cursor is pointing at the first entry. 1399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 1409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project boolean isFirst(); 1419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 1439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Returns whether the cursor is pointing to the last row. 1449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 1459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return whether the cursor is pointing at the last entry. 1469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 1479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project boolean isLast(); 1489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 1509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Returns whether the cursor is pointing to the position before the first 1519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * row. 1529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 1539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return whether the cursor is before the first result. 1549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 1559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project boolean isBeforeFirst(); 1569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 1589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Returns whether the cursor is pointing to the position after the last 1599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * row. 1609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 1619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return whether the cursor is after the last result. 1629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 1639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project boolean isAfterLast(); 1649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 1669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Returns the zero-based index for the given column name, or -1 if the column doesn't exist. 1679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * If you expect the column to exist use {@link #getColumnIndexOrThrow(String)} instead, which 1689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * will make the error more clear. 1699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 1709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param columnName the name of the target column. 1719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return the zero-based column index for the given column name, or -1 if 1729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * the column name does not exist. 1739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see #getColumnIndexOrThrow(String) 1749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 1759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int getColumnIndex(String columnName); 1769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 1789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Returns the zero-based index for the given column name, or throws 1799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * {@link IllegalArgumentException} if the column doesn't exist. If you're not sure if 1809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * a column will exist or not use {@link #getColumnIndex(String)} and check for -1, which 1819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * is more efficient than catching the exceptions. 1829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 1839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param columnName the name of the target column. 1849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return the zero-based column index for the given column name 1859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see #getColumnIndex(String) 1869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @throws IllegalArgumentException if the column does not exist 1879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 1889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int getColumnIndexOrThrow(String columnName) throws IllegalArgumentException; 1899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 1919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Returns the column name at the given zero-based column index. 1929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 1939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param columnIndex the zero-based index of the target column. 1949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return the column name for the given column index. 1959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 1969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project String getColumnName(int columnIndex); 1979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 1999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Returns a string array holding the names of all of the columns in the 2009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * result set in the order in which they were listed in the result. 2019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 2029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return the names of the columns returned in this query. 2039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 2049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project String[] getColumnNames(); 2059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 2079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Return total number of columns 2089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return number of columns 2099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 2109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int getColumnCount(); 2119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 2139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Returns the value of the requested column as a byte array. 2149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 2159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * <p>If the native content of that column is not blob exception may throw 2169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 2179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param columnIndex the zero-based index of the target column. 2189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return the value of that column as a byte array. 2199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 2209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project byte[] getBlob(int columnIndex); 2219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 2239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Returns the value of the requested column as a String. 2249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 2259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * <p>If the native content of that column is not text the result will be 2269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * the result of passing the column value to String.valueOf(x). 2279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 2289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param columnIndex the zero-based index of the target column. 2299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return the value of that column as a String. 2309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 2319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project String getString(int columnIndex); 2329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 2349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Retrieves the requested column text and stores it in the buffer provided. 2359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * If the buffer size is not sufficient, a new char buffer will be allocated 2369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * and assigned to CharArrayBuffer.data 2379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param columnIndex the zero-based index of the target column. 2389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * if the target column is null, return buffer 2399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param buffer the buffer to copy the text into. 2409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 2419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project void copyStringToBuffer(int columnIndex, CharArrayBuffer buffer); 2429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 2449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Returns the value of the requested column as a short. 2459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 2469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * <p>If the native content of that column is not numeric the result will be 2479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * the result of passing the column value to Short.valueOf(x). 2489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 2499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param columnIndex the zero-based index of the target column. 2509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return the value of that column as a short. 2519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 2529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project short getShort(int columnIndex); 2539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 2559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Returns the value of the requested column as an int. 2569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 2579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * <p>If the native content of that column is not numeric the result will be 2589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * the result of passing the column value to Integer.valueOf(x). 2599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 2609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param columnIndex the zero-based index of the target column. 2619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return the value of that column as an int. 2629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 2639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int getInt(int columnIndex); 2649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 2669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Returns the value of the requested column as a long. 2679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 2689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * <p>If the native content of that column is not numeric the result will be 2699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * the result of passing the column value to Long.valueOf(x). 2709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 2719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param columnIndex the zero-based index of the target column. 2729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return the value of that column as a long. 2739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 2749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project long getLong(int columnIndex); 2759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 2779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Returns the value of the requested column as a float. 2789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 2799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * <p>If the native content of that column is not numeric the result will be 2809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * the result of passing the column value to Float.valueOf(x). 2819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 2829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param columnIndex the zero-based index of the target column. 2839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return the value of that column as a float. 2849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 2859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project float getFloat(int columnIndex); 2869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 2889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Returns the value of the requested column as a double. 2899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 2909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * <p>If the native content of that column is not numeric the result will be 2919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * the result of passing the column value to Double.valueOf(x). 2929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 2939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param columnIndex the zero-based index of the target column. 2949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return the value of that column as a double. 2959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 2969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project double getDouble(int columnIndex); 2979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 2998b0dd7da360d70920a37802eb455ba41500d3b45Vasu Nori * Returns data type of the given column's value. 3008b0dd7da360d70920a37802eb455ba41500d3b45Vasu Nori * The preferred type of the column is returned but the data may be converted to other types 3018b0dd7da360d70920a37802eb455ba41500d3b45Vasu Nori * as documented in the get-type methods such as {@link #getInt(int)}, {@link #getFloat(int)} 3028b0dd7da360d70920a37802eb455ba41500d3b45Vasu Nori * etc. 3038b0dd7da360d70920a37802eb455ba41500d3b45Vasu Nori *<p> 3048b0dd7da360d70920a37802eb455ba41500d3b45Vasu Nori * Returned column types are 3058b0dd7da360d70920a37802eb455ba41500d3b45Vasu Nori * <ul> 3068b0dd7da360d70920a37802eb455ba41500d3b45Vasu Nori * <li>{@link #FIELD_TYPE_NULL}</li> 3078b0dd7da360d70920a37802eb455ba41500d3b45Vasu Nori * <li>{@link #FIELD_TYPE_INTEGER}</li> 3088b0dd7da360d70920a37802eb455ba41500d3b45Vasu Nori * <li>{@link #FIELD_TYPE_FLOAT}</li> 3098b0dd7da360d70920a37802eb455ba41500d3b45Vasu Nori * <li>{@link #FIELD_TYPE_STRING}</li> 3108b0dd7da360d70920a37802eb455ba41500d3b45Vasu Nori * <li>{@link #FIELD_TYPE_BLOB}</li> 3118b0dd7da360d70920a37802eb455ba41500d3b45Vasu Nori *</ul> 3128b0dd7da360d70920a37802eb455ba41500d3b45Vasu Nori *</p> 3138b0dd7da360d70920a37802eb455ba41500d3b45Vasu Nori * 3148b0dd7da360d70920a37802eb455ba41500d3b45Vasu Nori * @param columnIndex the zero-based index of the target column. 3158b0dd7da360d70920a37802eb455ba41500d3b45Vasu Nori * @return column value type 3168b0dd7da360d70920a37802eb455ba41500d3b45Vasu Nori */ 3178b0dd7da360d70920a37802eb455ba41500d3b45Vasu Nori int getType(int columnIndex); 3188b0dd7da360d70920a37802eb455ba41500d3b45Vasu Nori 3198b0dd7da360d70920a37802eb455ba41500d3b45Vasu Nori /** 3209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Returns <code>true</code> if the value in the indicated column is null. 3219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 3229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param columnIndex the zero-based index of the target column. 3239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return whether the column value is null. 3249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 3259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project boolean isNull(int columnIndex); 3269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 3279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 3289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Deactivates the Cursor, making all calls on it fail until {@link #requery} is called. 3299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Inactive Cursors use fewer resources than active Cursors. 3309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Calling {@link #requery} will make the cursor active again. 3319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 3329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project void deactivate(); 3339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 3349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 3359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Performs the query that created the cursor again, refreshing its 3369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * contents. This may be done at any time, including after a call to {@link 3379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * #deactivate}. 3389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 33920f549fd2f40db524242c9038d7d63356adf95fcVasu Nori * Since this method could execute a query on the database and potentially take 34020f549fd2f40db524242c9038d7d63356adf95fcVasu Nori * a while, it could cause ANR if it is called on Main (UI) thread. 34120f549fd2f40db524242c9038d7d63356adf95fcVasu Nori * A warning is printed if this method is being executed on Main thread. 34220f549fd2f40db524242c9038d7d63356adf95fcVasu Nori * 3439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return true if the requery succeeded, false if not, in which case the 3449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * cursor becomes invalid. 345820e9b6b9cea6cce8115339dd774cdc273c4d6daVasu Nori * @deprecated Don't use this. Just request a new cursor, so you can do this 346820e9b6b9cea6cce8115339dd774cdc273c4d6daVasu Nori * asynchronously and update your list view once the new cursor comes back. 3479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 348820e9b6b9cea6cce8115339dd774cdc273c4d6daVasu Nori @Deprecated 3499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project boolean requery(); 3509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 3519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 3529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Closes the Cursor, releasing all of its resources and making it completely invalid. 3539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Unlike {@link #deactivate()} a call to {@link #requery()} will not make the Cursor valid 3549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * again. 3559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 3569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project void close(); 3579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 3589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 3599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * return true if the cursor is closed 3609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return true if the cursor is closed. 3619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 3629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project boolean isClosed(); 3639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 3649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 3659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Register an observer that is called when changes happen to the content backing this cursor. 3669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Typically the data set won't change until {@link #requery()} is called. 3679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 3689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param observer the object that gets notified when the content backing the cursor changes. 3699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see #unregisterContentObserver(ContentObserver) 3709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 3719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project void registerContentObserver(ContentObserver observer); 3729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 3739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 3749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Unregister an observer that has previously been registered with this 3759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * cursor via {@link #registerContentObserver}. 3769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 3779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param observer the object to unregister. 3789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see #registerContentObserver(ContentObserver) 3799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 3809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project void unregisterContentObserver(ContentObserver observer); 3819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 3829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 3839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Register an observer that is called when changes happen to the contents 3849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * of the this cursors data set, for example, when the data set is changed via 3859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * {@link #requery()}, {@link #deactivate()}, or {@link #close()}. 3869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 3879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param observer the object that gets notified when the cursors data set changes. 3889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see #unregisterDataSetObserver(DataSetObserver) 3899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 3909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project void registerDataSetObserver(DataSetObserver observer); 3919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 3929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 3939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Unregister an observer that has previously been registered with this 3949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * cursor via {@link #registerContentObserver}. 3959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 3969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param observer the object to unregister. 3979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see #registerDataSetObserver(DataSetObserver) 3989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 3999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project void unregisterDataSetObserver(DataSetObserver observer); 4009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 4019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 4029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Register to watch a content URI for changes. This can be the URI of a specific data row (for 4039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * example, "content://my_provider_type/23"), or a a generic URI for a content type. 4049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 4059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param cr The content resolver from the caller's context. The listener attached to 4069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * this resolver will be notified. 4079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param uri The content URI to watch. 4089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 4099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project void setNotificationUri(ContentResolver cr, Uri uri); 4109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 4119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 4129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * onMove() will only be called across processes if this method returns true. 4139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return whether all cursor movement should result in a call to onMove(). 4149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 4159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project boolean getWantsAllOnMoveCalls(); 4169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 4179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 4189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Returns a bundle of extra values. This is an optional way for cursors to provide out-of-band 4199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * metadata to their users. One use of this is for reporting on the progress of network requests 4209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * that are required to fetch data for the cursor. 4219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 4229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * <p>These values may only change when requery is called. 4239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return cursor-defined values, or Bundle.EMTPY if there are no values. Never null. 4249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 4259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Bundle getExtras(); 4269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 4279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 4289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * This is an out-of-band way for the the user of a cursor to communicate with the cursor. The 4299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * structure of each bundle is entirely defined by the cursor. 4309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 4319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * <p>One use of this is to tell a cursor that it should retry its network request after it 4329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * reported an error. 4339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param extras extra values, or Bundle.EMTPY. Never null. 4349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return extra values, or Bundle.EMTPY. Never null. 4359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 4369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Bundle respond(Bundle extras); 4379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project} 438