Лучший способ использовать сопрограмму в любом месте - это использовать структурированный параллелизм для управления всем жизненным циклом. GlobalScope не реализует структурированный параллелизм.
- Как лучше всего использовать сопрограмму с фрагментами для сохранения данных в БД при изменении фрагмента?
Вы можете использовать LifecycleScope , предоставленный android.
Внутри фрагмента вы можете запустить сопрограмму с viewLifecycleOwner.lifecycleScope.launch{}
, и если вам нужна какая-то операция, которую не следует отменять, запустите их используя viewLifecycleOwner.lifecycleScope.launch(NonCancellable){}
Рекомендуется ли использовать GlobalScope.launch при изменении фрагмента?
Нет, GlobalScope крайне не рекомендуется использовать: см. Подробнее на Почему бы не использовать GlobalScope.launch ?
если GlobalScope.launch не подходит для использования, то что мы можем использовать вместо него?
Вы можете использовать lifeCycleScope, как упомянуто @ ianhanniballake.