Я создаю библиотеку Android для нашей платформы и пытаюсь разрешить пользователям передавать функцию, вызываемую в определенное время в библиотеке.
Библиотека запускает Activity, эта деятельность имеет несколько классов обслуживания, которые указывают на мой https API. (упрощенное, но, надеюсь, это достаточно подробно)
То, что я хочу предоставить, - это способ для моих пользователей передать обратный вызов, который генерирует токен аутентификации для API, позволяя им генерировать его самостоятельно. Возможно, интерфейс может выглядеть как String getAuthToken()
.
Но как я могу сделать это без потери состояния в какой-то момент? Я начал с Singleton, когда библиотека запускается (она запускает Intent для основной активности библиотеки), но когда процесс завершается, и вы пытаетесь вернуться к нему, то, конечно, приложение вылетает, синглтон был настроен до деятельность началась.
Я пропускаю какой-то очевидный паттерн в Java или Android, который решает эту проблему?
Зачем вам нужен активный контекст в синглтоне? Это выглядит как плохой дизайн для начала. Вам не нужно это делать для сетевых запросов.
Когда вы представляете действие, вы берете под контроль все жизненные циклы, которые оно включает. Да, андроид воссоздает его, когда вы поворачиваете экран, и это огромная боль в заднице, но для этого вы можете использовать ViewModels: