ContentResolver.query
選択引数をエスケープしますか?
たとえば、次のselArgs
ようなことを行う前に、手動で引数をエスケープする必要があります
Cursor c = contentResolver.query(uri, null, "mimetype=?", selArgs, null);
またはそれはquery
方法によって行われますか?
ContentResolver.query
選択引数をエスケープしますか?
たとえば、次のselArgs
ようなことを行う前に、手動で引数をエスケープする必要があります
Cursor c = contentResolver.query(uri, null, "mimetype=?", selArgs, null);
またはそれはquery
方法によって行われますか?
いいえ。コンテンツ プロバイダで手動で行う必要があります。
クエリ関数のソース コード:
public final Cursor query(Uri uri, String[] projection,
String selection, String[] selectionArgs, String sortOrder) {
IContentProvider provider = acquireProvider(uri);
if (provider == null) {
return null;
}
try {
long startTime = SystemClock.uptimeMillis();
Cursor qCursor = provider.query(uri, projection, selection, selectionArgs, sortOrder);
if (qCursor == null) {
releaseProvider(provider);
return null;
}
// force query execution
qCursor.getCount();
long durationMillis = SystemClock.uptimeMillis() - startTime;
maybeLogQueryToEventLog(durationMillis, uri, projection, selection, sortOrder);
// Wrap the cursor object into CursorWrapperInner object
return new CursorWrapperInner(qCursor, provider);
} catch (RemoteException e) {
releaseProvider(provider);
// Arbitrary and not worth documenting, as Activity
// Manager will kill this process shortly anyway.
return null;
} catch (RuntimeException e) {
releaseProvider(provider);
throw e;
}
}