Выполните длительную операцию внутри метода onNewToken() для FirebaseMessagingService.Android

Форум для тех, кто программирует под Android
Ответить Пред. темаСлед. тема
Anonymous
 Выполните длительную операцию внутри метода onNewToken() для FirebaseMessagingService.

Сообщение Anonymous »

Я работаю со службой обмена сообщениями Firebase на Android. Для этого я создал свою собственную службу Android, которая является продолжением FirebaseMessagingService, как указано в документации.

Код: Выделить всё

class MyCustomMessagingService : FirebaseMessagingService() {
... More core here

override fun onNewToken(token: String) {
// Long running operation
GlobalScope.launch { repository.saveNewToken(token) }
}
... More code here
}
Дело в том, что мне нужно вызвать приостанавливаемую функцию, когда новый токен поступает внутри onNewToken(token), чтобы сохранить токен.
Сейчас я использую GlobalScope, потому что хочу, чтобы токен сохранялся, даже если служба завершится. Раньше я использовал новую область действия сопрограммы, привязанную к жизненному циклу Сервиса, но подумал, что, возможно, onDestroy() можно вызвать до сохранения токена.
Также попробовал использовать runBlocking {repository.saveNewToken(token) , потому что onNewToken() должен вызываться из рабочего потока. Другой вариант, который приходит мне на ум, — использовать Worker с одноразовым запросом, но этот вариант кажется излишним.
Как вы думаете, ребята, это наиболее правильный способ вызвать приостанавливаемую функцию изнутри onNewToken(), гарантирующую, что задание не будет отменено, даже если служба будет прекращена и ресурсы будут использоваться правильно?
Спасибо

Подробнее здесь: https://stackoverflow.com/questions/771 ... messagings
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Android»