Поставщик контента (база данных): иногда результат равен нулю - PullRequest
0 голосов
/ 27 июня 2019

У меня есть этот статический метод для извлечения моего зарегистрированного пользователя информации из базы данных (SQLite), а иногда по неизвестной причине, этот метод возвращает ноль ... И, к сожалению, я могу 'воспроизвести эту ошибку ...

private static final Object sLock = new Object() {};

public static User getUser() {

        User user = null;

        synchronized (sLock) {
            Cursor cursor = getContext().getContentResolver().query(
                    MyContract.User.CONTENT_URI, null, null, null, null);

            TypeAdapter<User> adapter = GsonUtils.createGsonBuilder().getAdapter(User.class);

            try {
                if (cursor != null) {
                    if (cursor.moveToFirst()) {
                        user = adapter.fromJson(cursor.getString(1));
                    }
                }

            } catch (IOException e) {
                LogUtils.LOGE(TAG, "Impossible to parse from Gson logged user");

            } finally {
                if (cursor != null) {
                    cursor.close();
                }
            }

            if (user == null) {
                LogUtils.LOGE(TAG, "Impossible to retrieve logged user from database");
            }
        }

        return user;
    }

Ребята, у вас есть объяснения?

Большое спасибо!

...