Возможно, этот ответ не поможет в вашей проблеме, но я надеюсь, что он поможет вам со стилем кода.
Вы можете настроить интерфейс таким образом для всех выбранных вами запросов
public interface SelectQuery {
Cursor execute(SQLiteDatabase db);
}
А вот реализация вашего запроса с помощью этого интерфейса
public class MusicPathsByHoursAndMinutesQuery implements SelectQuery {
private static final String TAG = MusicPathsByHoursAndMinutesQuery.class.getSimpleName();
private static final String PRECOMPILED_QUERY_STATEMENT =
"SELECT musicPath FROM alarms WHERE hours = ? and minutes = ?";
private final int hours;
private final int minutes;
public MusicPathsByHoursAndMinutesQuery(int hours, int minutes) {
this.hours = hours;
this.minutes = minutes;
}
@Override
public Cursor execute(SQLiteDatabase db) {
final Cursor cursor = db.rawQuery(PRECOMPILED_QUERY_STATEMENT, getQueryArgs());
if (BuildConfig.DEBUG) {
Log.d(TAG, "Query: " + PRECOMPILED_QUERY_STATEMENT);
Log.d(TAG, "With args: " + Arrays.toString(getQueryArgs()));
Log.d(TAG, "Returned cursor with " + cursor.getCount() + " rows.");
}
return cursor;
}
private String[] getQueryArgs() {
return new String[]{
String.valueOf(hours),
String.valueOf(minutes)
};
}
}
И его использование (ведение журнала также включено в режиме отладки)
Cursor cursor = new MusicPathsByHoursAndMinutesQuery(hours, minutes).execute(db);