По словам Романа Елизарова, руководителя команды библиотек Котлина, работающего над сопрограммами, по этой теме :
Вряд ли есть причина использовать GlobalScope в приложении, которое
основан на соплинах Kotlin.
Если, как вы говорите, вы хотите, чтобы «работа завершалась, несмотря ни на что», имейте в виду, что все имеет область действия. Будь то фрагмент, действие или приложение, все в конце концов заканчивается. Поэтому лучшим решением будет использование структурированного параллелизма и запуск задания базы данных из области, связанной с его работой.
Похоже, что это деятельность в вашем случае. Однако, если ваш пользовательский интерфейс не может помешать пользователю покинуть активность до завершения работы, и очень важно, чтобы работа всегда выполнялась, тогда вам, вероятно, нужно больше, чем просто сопрограммы. Рассмотрите возможность планирования вашей длительной работы с помощью WorkManager .
В любом случае, старайтесь избегать GlobalScope
, так как это не правильное решение.