Отслеживать изменение строки
Есть ли какой-то метод или способ отслеживания изменения переменной, в моем случае строки ? У меня метод с изменением нужной строки вызывается из другого класса, поэтому он public static. Не статичный метод с сохранением из него не вызвать, но и сделать его таким я не могу, так как придется статичными делать и Shared Preferences, и все, что связано с ними. Думаю это не грамотно. Знаю, что существует метод отслеживания фокуса в Edit Text, так вот мне интересно, есть ли все-таки что-то подобное для постоянного отслеживания изменения строки ?
Ответы (1 шт):
Стандартных средств для отслеживания изменений в строке нет. Вообще, строки - иммутабельны и их нельзя изменить, только заменить. Отследить замену тоже нельзя.
Для решения такого рода задач вам нужно использовать такие паттерны как Singleton и Observer. Самостоятельно их можно реализовать, но лучше использовать уже готовые решения.
Singleton можно реализовать, например, средствами к-л DI либы. Например Toothpick.
Observer - через RxJava + RxRelay.
Если кратко - биндите экземпляр BehaiviorRelay через DI, указываете ему быть Singleton-ом, инжектите в нужные места и устанавливаете ему значения и/или подписываетесь на получение изменений в нём.