Articles of singleton

Синтаксическая сериализация в Котлине

Мне интересно, можно ли в Kotlin десериализовать (восстановить значения свойства) объявленного объекта, не требуя вручную назначать свойства или прибегать к отражению . Следующий фрагмент далее объясняет: object Foo: Serializable { var propOne: String = "" // … fun persist() { serialize(this) // no problem with serialization } fun restore(bytes: ByteArray) { val fooObj: Foo = […]

Использование комнаты в качестве одноэлементного в kotlin

Я пытаюсь использовать Room как singleton, поэтому мне не приходилось ссылаться на Room.databaseBuilder() что дорого – не один раз. @Database(entities = arrayOf( Price::class, StationOrder::class, TicketPrice::class, Train::class, TrainCategory::class ), version = 2) @TypeConverters(Converters::class) abstract class AppDatabase : RoomDatabase() { abstract fun dao(): TrainDao companion object { fun createDatabase(context: Context): AppDatabase = Room.databaseBuilder(context, AppDatabase::class.java, "trains.db").build() } } […]

Объект базы данных Singleton с параметризованной инициализацией при запуске?

Я пытаюсь создать единый экземпляр базы данных, который может использоваться несколькими классами (используя ключевое слово object в Котлине). Однако я хотел бы указать имя базы данных до создания экземпляра singleton. Поскольку одноэлементный объект не может быть инициализирован параметром, мне было интересно, действительно ли то, что я делаю, или если есть лучший способ делать вещи: object […]

Kotlin переопределяет абстрактное поведение val, объект vs class

Я только начал использовать и начал возиться с абстрактными классами, переопределять val и singeltons. Но, я только что столкнулся с действительно странным поведением. Моя цель состояла в том, чтобы иметь абстрактный класс, а затем создать несколько singeltons, которые расширяют этот абстрактный класс. Так как я хочу, чтобы некоторые переменные я создал абстрактные значения val, которые […]

Как создать экземпляр Singleton только один раз в моем приложении и его библиотеках?

Я создал для меня библиотеку с Firebase Cloud Messaging, поэтому я могу использовать ее в своих приложениях и во всех других библиотеках, которые я создал. Он работает до сих пор. Затем я добавил класс FcmManager, который управляет всеми связанными с Fcm вещами, такими как токен обновления. Поскольку я могу использовать эту FcmLibrary в своем приложении […]

Каков рекомендуемый способ борьбы с очисткой Singletons в Android (Kotlin)?

У меня возникли какие-то странные проблемы в приложении для Android при закрытии его с помощью обратного ключа и повторного входа, и они обнаружили, что они происходят, потому что переменные в 2 классах Singleton, которые у меня отсутствуют, никогда не перезаписываются (проблема не возникает, если вручную убить приложение из диспетчера задач). Даже после того, как я […]

Недвижимость Котлина с геттером. Могу ли я указать начальное значение?

Я хочу создать одноэлементный класс, но, к сожалению, Android нуждается в Контексте почти для чего-то, поэтому мне нужно создать экземпляр. Поэтому я просто предположил, что пользователь вызвал init() , а затем вернул экземпляр. Как вы видите ниже, если значение _instance равно null, будет _instance исключение, поэтому метод get не может вернуть значение null. Но Котлин […]

латинит, ленивый и одноэлементный узор в котлине

Я пытаюсь преобразовать часть моего проекта из java в kotlin . Один из них – это один менеджер-менеджер. Класс java выглядит следующим образом: public class Manager { private static volatile Manager Instance = null; private static final Object InstanceLock = new Object(); private Manager(Object1 object1, Object2 object2, Object3 object3){//…}; public static boolean isInitialized(){ synchronized(InstanceLock){ return […]

Класс применения SingleTon класса Kotlin

Поэтому в android я хочу сделать свой класс приложения синглом. Сделав это так: object MyApplication: Application(){} не будет работать. После эррос бросается во время выполнения: java.lang.IllegalAccessException: private com….is not accessible from class android.app.Instrumentation. Выполнение этого также невозможно: class MyApp: Application() { private val instance_: MyApp init{ instance_ = this } override fun onCreate() { super.onCreate() […]