• Почему могут различаться результаты select в Realm?

    @aelimill
    Хорошей практикой является закрытие инстанса Realm после окончания его использования (мы в своем проекте не хранили ссылку, а открывали (getInstance()) и закрывали (close()) после каждой операции как чтения/так и записи, так как мы как и вы использовали только копии объектов). У рилма довольно сложная внутренняя система синхронизации версий между открытыми инстансами - на тредах с луперами (как UI-thread, к примеру) работает авто-рефреш, в других надо вызывать refresh() вручную (причем эта логика менялась от релиза к релизу и, возможно, что-то уже не актуально в написанном).

    Для интереса я бы порекомендовал переписать методы добавив в них принудительное закрытие рилма.
    protected open fun select(namePrimaryKey: String, primaryKey: String, clazz: KClass<T>) : T {
    val realm = RealmConfigDB.getInstance()
    // делаем копию объекта
    realm.close()
    return копию
        }
  • Почему приостанавливается Android- сервис?

    @aelimill
    Судя по описанию похоже на очень агрессивный Doze Mode. Попробуйте внести приложение в белый список.