Почему Cursor возвращает null IntentService Android

87
17 апреля 2021, 13:20

При создании уведомления я получаю значение Uri такого формата

content://com.example.myappv2/notes/2

после чего пытаюсь получить значение курсора чтобы добавить описание из строки в БД к моему уведомлению, но cursor возвращает null, но уведомление срабатывает в указанное время, но пустое, что я делаю не так? Ниже представлен весь код класса? буду признателен за любые ответы

public class ReminderAlarmService extends IntentService {
private static final String TAG = ReminderAlarmService.class.getSimpleName();
private static final int NOTIFICATION_ID = 100;
public String description;
PendingIntent operation;
NotificationManager notificationManager;
static final String LOG_TAG = "myLog";

// Это намерение с глубокими ссылками, для которого требуется стек задач
public static PendingIntent getReminderPendingIntent(Context context, Uri uri) {
    Intent action = new Intent(context, ReminderAlarmService.class);

    action.setData(uri);
    return PendingIntent.getService(context, 0, action, PendingIntent.FLAG_UPDATE_CURRENT);
}
public ReminderAlarmService() {
    super(TAG);
}

@Override
protected void onHandleIntent(@Nullable Intent intent) {
    notificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
    Uri uri = intent.getData();
    // Отображение уведомления для просмотра деталей задачи
    Intent action = new Intent(this, DetailsActivity.class);
    action.setData(uri);
    operation = TaskStackBuilder.create(this)
            .addNextIntentWithParentStack(action)
            .getPendingIntent(0, PendingIntent.FLAG_UPDATE_CURRENT);
    // Получить описание задачи
    Cursor cursor = getContentResolver().query(uri, null, null, null, null);
   try {
        if (cursor != null && cursor.moveToFirst()) {
            description = ConstantsDB.getColumnString(cursor, ConstantsDB.KEY_NAME);
        }
    } finally {
        if (cursor != null) {
            cursor.close();
        }
    }
    Log.d(LOG_TAG, "discription " + uri );
    Notification notification = new Notification.Builder(this)
            .setContentTitle(getString(R.string.app_name))
            .setContentText(description)
            .setSmallIcon(R.drawable.ic1)
            .setContentIntent(operation)
            .setVibrate(new long[]{1000, 1000, 1000, 1000, 1000})
            .setSound(Settings.System.DEFAULT_NOTIFICATION_URI)
            .setAutoCancel(true)
            .build();
    notificationManager.notify(NOTIFICATION_ID, notification);
}

}

READ ALSO
Подскажите как с другого класса добавить текст в TextArea JavaFX чтобы оно отобразилось в приложении?

Подскажите как с другого класса добавить текст в TextArea JavaFX чтобы оно отобразилось в приложении?

Не могу понять как это сделать, уже все перепробовалTextArea находится в классе BotOverviewController, а передаю данный с класса MainApp

115
Массив чисел в одно число через Stream

Массив чисел в одно число через Stream

Дано - входящий массив; из которого нужно убрать все дубликаты и вернуть число, состоящее из оставшихся чисел массиваРеализовать нужно через...

136
Присвоение значения с TextField в String

Присвоение значения с TextField в String

Не понимаю, как присвоить значение String c TextField

103
Функция TestRestTemplate.withBasicAuth() не работает

Функция TestRestTemplate.withBasicAuth() не работает

Функция TestRestTemplatewithBasicAuth() не работает В настройках доступ ко всем ендпоинтам открыт

80