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 2303bd302aebbb77f4f95789a269c8a5463ac5a840Jeff Brownimport java.io.Closeable; 2403bd302aebbb77f4f95789a269c8a5463ac5a840Jeff Brown 259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/** 269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * This interface provides random read-write access to the result set returned 279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * by a database query. 28f3ca9a5c7e87319c934b5815566054d2e5c2085fJeff Hamilton * 29f3ca9a5c7e87319c934b5815566054d2e5c2085fJeff Hamilton * Cursor implementations are not required to be synchronized so code using a Cursor from multiple 30f3ca9a5c7e87319c934b5815566054d2e5c2085fJeff Hamilton * threads should perform its own synchronization when using the Cursor. 319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 3203bd302aebbb77f4f95789a269c8a5463ac5a840Jeff Brownpublic interface Cursor extends Closeable { 338b0dd7da360d70920a37802eb455ba41500d3b45Vasu Nori /* 348b0dd7da360d70920a37802eb455ba41500d3b45Vasu Nori * Values returned by {@link #getType(int)}. 358b0dd7da360d70920a37802eb455ba41500d3b45Vasu Nori * These should be consistent with the corresponding types defined in CursorWindow.h 368b0dd7da360d70920a37802eb455ba41500d3b45Vasu Nori */ 378b0dd7da360d70920a37802eb455ba41500d3b45Vasu Nori /** Value returned by {@link #getType(int)} if the specified column is null */ 388b0dd7da360d70920a37802eb455ba41500d3b45Vasu Nori static final int FIELD_TYPE_NULL = 0; 398b0dd7da360d70920a37802eb455ba41500d3b45Vasu Nori 408b0dd7da360d70920a37802eb455ba41500d3b45Vasu Nori /** Value returned by {@link #getType(int)} if the specified column type is integer */ 418b0dd7da360d70920a37802eb455ba41500d3b45Vasu Nori static final int FIELD_TYPE_INTEGER = 1; 428b0dd7da360d70920a37802eb455ba41500d3b45Vasu Nori 438b0dd7da360d70920a37802eb455ba41500d3b45Vasu Nori /** Value returned by {@link #getType(int)} if the specified column type is float */ 448b0dd7da360d70920a37802eb455ba41500d3b45Vasu Nori static final int FIELD_TYPE_FLOAT = 2; 458b0dd7da360d70920a37802eb455ba41500d3b45Vasu Nori 468b0dd7da360d70920a37802eb455ba41500d3b45Vasu Nori /** Value returned by {@link #getType(int)} if the specified column type is string */ 478b0dd7da360d70920a37802eb455ba41500d3b45Vasu Nori static final int FIELD_TYPE_STRING = 3; 488b0dd7da360d70920a37802eb455ba41500d3b45Vasu Nori 498b0dd7da360d70920a37802eb455ba41500d3b45Vasu Nori /** Value returned by {@link #getType(int)} if the specified column type is blob */ 508b0dd7da360d70920a37802eb455ba41500d3b45Vasu Nori static final int FIELD_TYPE_BLOB = 4; 518b0dd7da360d70920a37802eb455ba41500d3b45Vasu Nori 529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Returns the numbers of rows in the cursor. 549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return the number of rows in the cursor. 569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int getCount(); 589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Returns the current position of the cursor in the row set. 619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * The value is zero-based. When the row set is first returned the cursor 629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * will be at positon -1, which is before the first row. After the 639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * last row is returned another call to next() will leave the cursor past 649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * the last entry, at a position of count(). 659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return the current cursor position. 679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int getPosition(); 699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Move the cursor by a relative amount, forward or backward, from the 729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * current position. Positive offsets move forwards, negative offsets move 739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * backwards. If the final position is outside of the bounds of the result 749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * set then the resultant position will be pinned to -1 or count() depending 759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * on whether the value is off the front or end of the set, respectively. 769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * <p>This method will return true if the requested destination was 789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * reachable, otherwise, it returns false. For example, if the cursor is at 799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * currently on the second entry in the result set and move(-5) is called, 809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * the position will be pinned at -1, and false will be returned. 819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param offset the offset to be applied from the current position. 839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return whether the requested move fully succeeded. 849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project boolean move(int offset); 869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Move the cursor to an absolute position. The valid 899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * range of values is -1 <= position <= count. 909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * <p>This method will return true if the request destination was reachable, 929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * otherwise, it returns false. 939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param position the zero-based position to move to. 959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return whether the requested move fully succeeded. 969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project boolean moveToPosition(int position); 989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 1009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Move the cursor to the first row. 1019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 1029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * <p>This method will return false if the cursor is empty. 1039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 1049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return whether the move succeeded. 1059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 1069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project boolean moveToFirst(); 1079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 1099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Move the cursor to the last row. 1109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 1119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * <p>This method will return false if the cursor is empty. 1129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 1139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return whether the move succeeded. 1149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 1159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project boolean moveToLast(); 1169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 1189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Move the cursor to the next row. 1199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 1209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * <p>This method will return false if the cursor is already past the 1219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * last entry in the result set. 1229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 1239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return whether the move succeeded. 1249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 1259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project boolean moveToNext(); 1269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 1289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Move the cursor to the previous row. 1299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 1309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * <p>This method will return false if the cursor is already before the 1319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * first entry in the result set. 1329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 1339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return whether the move succeeded. 1349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 1359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project boolean moveToPrevious(); 1369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 1389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Returns whether the cursor is pointing to the first row. 1399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 1409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return whether the cursor is pointing at the first entry. 1419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 1429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project boolean isFirst(); 1439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 1459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Returns whether the cursor is pointing to the last row. 1469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 1479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return whether the cursor is pointing at the last entry. 1489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 1499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project boolean isLast(); 1509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 1529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Returns whether the cursor is pointing to the position before the first 1539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * row. 1549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 1559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return whether the cursor is before the first result. 1569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 1579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project boolean isBeforeFirst(); 1589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 1609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Returns whether the cursor is pointing to the position after the last 1619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * row. 1629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 1639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return whether the cursor is after the last result. 1649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 1659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project boolean isAfterLast(); 1669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 1689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Returns the zero-based index for the given column name, or -1 if the column doesn't exist. 1699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * If you expect the column to exist use {@link #getColumnIndexOrThrow(String)} instead, which 1709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * will make the error more clear. 1719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 1729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param columnName the name of the target column. 1739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return the zero-based column index for the given column name, or -1 if 1749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * the column name does not exist. 1759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see #getColumnIndexOrThrow(String) 1769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 1779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int getColumnIndex(String columnName); 1789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 1809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Returns the zero-based index for the given column name, or throws 1819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * {@link IllegalArgumentException} if the column doesn't exist. If you're not sure if 1829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * a column will exist or not use {@link #getColumnIndex(String)} and check for -1, which 1839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * is more efficient than catching the exceptions. 1849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 1859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param columnName the name of the target column. 1869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return the zero-based column index for the given column name 1879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see #getColumnIndex(String) 1889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @throws IllegalArgumentException if the column does not exist 1899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 1909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int getColumnIndexOrThrow(String columnName) throws IllegalArgumentException; 1919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 1939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Returns the column name at the given zero-based column index. 1949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 1959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param columnIndex the zero-based index of the target column. 1969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return the column name for the given column index. 1979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 1989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project String getColumnName(int columnIndex); 1999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 2019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Returns a string array holding the names of all of the columns in the 2029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * result set in the order in which they were listed in the result. 2039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 2049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return the names of the columns returned in this query. 2059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 2069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project String[] getColumnNames(); 2079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 2099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Return total number of columns 2109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return number of columns 2119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 2129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int getColumnCount(); 2139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 2159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Returns the value of the requested column as a byte array. 2169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 21765068b099e0f54bea44a353751a2654991e2df29Daniel Trebbien * <p>The result and whether this method throws an exception when the 21865068b099e0f54bea44a353751a2654991e2df29Daniel Trebbien * column value is null or the column type is not a blob type is 21965068b099e0f54bea44a353751a2654991e2df29Daniel Trebbien * implementation-defined. 2209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 2219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param columnIndex the zero-based index of the target column. 2229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return the value of that column as a byte array. 2239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 2249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project byte[] getBlob(int columnIndex); 2259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 2279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Returns the value of the requested column as a String. 2289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 22965068b099e0f54bea44a353751a2654991e2df29Daniel Trebbien * <p>The result and whether this method throws an exception when the 23065068b099e0f54bea44a353751a2654991e2df29Daniel Trebbien * column value is null or the column type is not a string type is 23165068b099e0f54bea44a353751a2654991e2df29Daniel Trebbien * implementation-defined. 2329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 2339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param columnIndex the zero-based index of the target column. 2349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return the value of that column as a String. 2359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 2369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project String getString(int columnIndex); 2379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 2399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Retrieves the requested column text and stores it in the buffer provided. 2409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * If the buffer size is not sufficient, a new char buffer will be allocated 2419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * and assigned to CharArrayBuffer.data 2429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param columnIndex the zero-based index of the target column. 2439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * if the target column is null, return buffer 2449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param buffer the buffer to copy the text into. 2459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 2469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project void copyStringToBuffer(int columnIndex, CharArrayBuffer buffer); 2479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 2499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Returns the value of the requested column as a short. 2509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 25165068b099e0f54bea44a353751a2654991e2df29Daniel Trebbien * <p>The result and whether this method throws an exception when the 25265068b099e0f54bea44a353751a2654991e2df29Daniel Trebbien * column value is null, the column type is not an integral type, or the 25365068b099e0f54bea44a353751a2654991e2df29Daniel Trebbien * integer value is outside the range [<code>Short.MIN_VALUE</code>, 25465068b099e0f54bea44a353751a2654991e2df29Daniel Trebbien * <code>Short.MAX_VALUE</code>] is implementation-defined. 2559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 2569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param columnIndex the zero-based index of the target column. 2579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return the value of that column as a short. 2589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 2599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project short getShort(int columnIndex); 2609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 2629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Returns the value of the requested column as an int. 2639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 26465068b099e0f54bea44a353751a2654991e2df29Daniel Trebbien * <p>The result and whether this method throws an exception when the 26565068b099e0f54bea44a353751a2654991e2df29Daniel Trebbien * column value is null, the column type is not an integral type, or the 26665068b099e0f54bea44a353751a2654991e2df29Daniel Trebbien * integer value is outside the range [<code>Integer.MIN_VALUE</code>, 26765068b099e0f54bea44a353751a2654991e2df29Daniel Trebbien * <code>Integer.MAX_VALUE</code>] is implementation-defined. 2689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 2699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param columnIndex the zero-based index of the target column. 2709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return the value of that column as an int. 2719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 2729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int getInt(int columnIndex); 2739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 2759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Returns the value of the requested column as a long. 2769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 27765068b099e0f54bea44a353751a2654991e2df29Daniel Trebbien * <p>The result and whether this method throws an exception when the 27865068b099e0f54bea44a353751a2654991e2df29Daniel Trebbien * column value is null, the column type is not an integral type, or the 27965068b099e0f54bea44a353751a2654991e2df29Daniel Trebbien * integer value is outside the range [<code>Long.MIN_VALUE</code>, 28065068b099e0f54bea44a353751a2654991e2df29Daniel Trebbien * <code>Long.MAX_VALUE</code>] is implementation-defined. 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 long. 2849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 2859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project long getLong(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 float. 2899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 29065068b099e0f54bea44a353751a2654991e2df29Daniel Trebbien * <p>The result and whether this method throws an exception when the 29165068b099e0f54bea44a353751a2654991e2df29Daniel Trebbien * column value is null, the column type is not a floating-point type, or the 29265068b099e0f54bea44a353751a2654991e2df29Daniel Trebbien * floating-point value is not representable as a <code>float</code> value is 29365068b099e0f54bea44a353751a2654991e2df29Daniel Trebbien * implementation-defined. 2949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 2959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param columnIndex the zero-based index of the target column. 2969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return the value of that column as a float. 2979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 2989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project float getFloat(int columnIndex); 2999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 3009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 3019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Returns the value of the requested column as a double. 3029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 30365068b099e0f54bea44a353751a2654991e2df29Daniel Trebbien * <p>The result and whether this method throws an exception when the 30465068b099e0f54bea44a353751a2654991e2df29Daniel Trebbien * column value is null, the column type is not a floating-point type, or the 30565068b099e0f54bea44a353751a2654991e2df29Daniel Trebbien * floating-point value is not representable as a <code>double</code> value is 30665068b099e0f54bea44a353751a2654991e2df29Daniel Trebbien * implementation-defined. 3079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 3089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param columnIndex the zero-based index of the target column. 3099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return the value of that column as a double. 3109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 3119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project double getDouble(int columnIndex); 3129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 3139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 3148b0dd7da360d70920a37802eb455ba41500d3b45Vasu Nori * Returns data type of the given column's value. 3158b0dd7da360d70920a37802eb455ba41500d3b45Vasu Nori * The preferred type of the column is returned but the data may be converted to other types 3168b0dd7da360d70920a37802eb455ba41500d3b45Vasu Nori * as documented in the get-type methods such as {@link #getInt(int)}, {@link #getFloat(int)} 3178b0dd7da360d70920a37802eb455ba41500d3b45Vasu Nori * etc. 3188b0dd7da360d70920a37802eb455ba41500d3b45Vasu Nori *<p> 3198b0dd7da360d70920a37802eb455ba41500d3b45Vasu Nori * Returned column types are 3208b0dd7da360d70920a37802eb455ba41500d3b45Vasu Nori * <ul> 3218b0dd7da360d70920a37802eb455ba41500d3b45Vasu Nori * <li>{@link #FIELD_TYPE_NULL}</li> 3228b0dd7da360d70920a37802eb455ba41500d3b45Vasu Nori * <li>{@link #FIELD_TYPE_INTEGER}</li> 3238b0dd7da360d70920a37802eb455ba41500d3b45Vasu Nori * <li>{@link #FIELD_TYPE_FLOAT}</li> 3248b0dd7da360d70920a37802eb455ba41500d3b45Vasu Nori * <li>{@link #FIELD_TYPE_STRING}</li> 3258b0dd7da360d70920a37802eb455ba41500d3b45Vasu Nori * <li>{@link #FIELD_TYPE_BLOB}</li> 3268b0dd7da360d70920a37802eb455ba41500d3b45Vasu Nori *</ul> 3278b0dd7da360d70920a37802eb455ba41500d3b45Vasu Nori *</p> 3288b0dd7da360d70920a37802eb455ba41500d3b45Vasu Nori * 3298b0dd7da360d70920a37802eb455ba41500d3b45Vasu Nori * @param columnIndex the zero-based index of the target column. 3308b0dd7da360d70920a37802eb455ba41500d3b45Vasu Nori * @return column value type 3318b0dd7da360d70920a37802eb455ba41500d3b45Vasu Nori */ 3328b0dd7da360d70920a37802eb455ba41500d3b45Vasu Nori int getType(int columnIndex); 3338b0dd7da360d70920a37802eb455ba41500d3b45Vasu Nori 3348b0dd7da360d70920a37802eb455ba41500d3b45Vasu Nori /** 3359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Returns <code>true</code> if the value in the indicated column is null. 3369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 3379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param columnIndex the zero-based index of the target column. 3389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return whether the column value is null. 3399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 3409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project boolean isNull(int columnIndex); 3419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 3429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 3439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Deactivates the Cursor, making all calls on it fail until {@link #requery} is called. 3449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Inactive Cursors use fewer resources than active Cursors. 3459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Calling {@link #requery} will make the cursor active again. 34681e9276a479fd3a5ccc3129505c0fb018941934bDianne Hackborn * @deprecated Since {@link #requery()} is deprecated, so too is this. 3479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 3489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project void deactivate(); 3499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 3509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 3519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Performs the query that created the cursor again, refreshing its 3529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * contents. This may be done at any time, including after a call to {@link 3539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * #deactivate}. 3549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 35520f549fd2f40db524242c9038d7d63356adf95fcVasu Nori * Since this method could execute a query on the database and potentially take 35620f549fd2f40db524242c9038d7d63356adf95fcVasu Nori * a while, it could cause ANR if it is called on Main (UI) thread. 35720f549fd2f40db524242c9038d7d63356adf95fcVasu Nori * A warning is printed if this method is being executed on Main thread. 35820f549fd2f40db524242c9038d7d63356adf95fcVasu Nori * 3599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return true if the requery succeeded, false if not, in which case the 3609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * cursor becomes invalid. 361820e9b6b9cea6cce8115339dd774cdc273c4d6daVasu Nori * @deprecated Don't use this. Just request a new cursor, so you can do this 362820e9b6b9cea6cce8115339dd774cdc273c4d6daVasu Nori * asynchronously and update your list view once the new cursor comes back. 3639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 364820e9b6b9cea6cce8115339dd774cdc273c4d6daVasu Nori @Deprecated 3659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project boolean requery(); 3669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 3679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 3689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Closes the Cursor, releasing all of its resources and making it completely invalid. 3699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Unlike {@link #deactivate()} a call to {@link #requery()} will not make the Cursor valid 3709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * again. 3719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 3729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project void close(); 3739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 3749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 3759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * return true if the cursor is closed 3769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return true if the cursor is closed. 3779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 3789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project boolean isClosed(); 3799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 3809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 3819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Register an observer that is called when changes happen to the content backing this cursor. 3829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Typically the data set won't change until {@link #requery()} is called. 3839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 3849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param observer the object that gets notified when the content backing the cursor changes. 3859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see #unregisterContentObserver(ContentObserver) 3869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 3879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project void registerContentObserver(ContentObserver observer); 3889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 3899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 3909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Unregister an observer that has previously been registered with this 3919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * cursor via {@link #registerContentObserver}. 3929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 3939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param observer the object to unregister. 3949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see #registerContentObserver(ContentObserver) 3959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 3969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project void unregisterContentObserver(ContentObserver observer); 3979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 3989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 3999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Register an observer that is called when changes happen to the contents 4009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * of the this cursors data set, for example, when the data set is changed via 4019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * {@link #requery()}, {@link #deactivate()}, or {@link #close()}. 4029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 4039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param observer the object that gets notified when the cursors data set changes. 4049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see #unregisterDataSetObserver(DataSetObserver) 4059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 4069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project void registerDataSetObserver(DataSetObserver observer); 4079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 4089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 4099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Unregister an observer that has previously been registered with this 4109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * cursor via {@link #registerContentObserver}. 4119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 4129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param observer the object to unregister. 4139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see #registerDataSetObserver(DataSetObserver) 4149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 4159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project void unregisterDataSetObserver(DataSetObserver observer); 4169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 4179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 4189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Register to watch a content URI for changes. This can be the URI of a specific data row (for 4199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * example, "content://my_provider_type/23"), or a a generic URI for a content type. 4209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 4219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param cr The content resolver from the caller's context. The listener attached to 4229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * this resolver will be notified. 4239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param uri The content URI to watch. 4249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 4259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project void setNotificationUri(ContentResolver cr, Uri uri); 4269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 4279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 4289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * onMove() will only be called across processes if this method returns true. 4299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return whether all cursor movement should result in a call to onMove(). 4309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 4319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project boolean getWantsAllOnMoveCalls(); 4329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 4339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 4349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Returns a bundle of extra values. This is an optional way for cursors to provide out-of-band 4359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * metadata to their users. One use of this is for reporting on the progress of network requests 4369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * that are required to fetch data for the cursor. 4379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 4389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * <p>These values may only change when requery is called. 43965068b099e0f54bea44a353751a2654991e2df29Daniel Trebbien * @return cursor-defined values, or {@link android.os.Bundle#EMPTY Bundle.EMPTY} if there 44065068b099e0f54bea44a353751a2654991e2df29Daniel Trebbien * are no values. Never <code>null</code>. 4419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 4429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Bundle getExtras(); 4439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 4449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 4459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * This is an out-of-band way for the the user of a cursor to communicate with the cursor. The 4469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * structure of each bundle is entirely defined by the cursor. 4479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 4489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * <p>One use of this is to tell a cursor that it should retry its network request after it 4499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * reported an error. 45065068b099e0f54bea44a353751a2654991e2df29Daniel Trebbien * @param extras extra values, or {@link android.os.Bundle#EMPTY Bundle.EMPTY}. 45165068b099e0f54bea44a353751a2654991e2df29Daniel Trebbien * Never <code>null</code>. 45265068b099e0f54bea44a353751a2654991e2df29Daniel Trebbien * @return extra values, or {@link android.os.Bundle#EMPTY Bundle.EMPTY}. 45365068b099e0f54bea44a353751a2654991e2df29Daniel Trebbien * Never <code>null</code>. 4549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 4559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Bundle respond(Bundle extras); 4569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project} 457