Вы должны объявлять вашу функцию suspend
только если это необходимо.Я бы сказал, что если вы сомневаетесь, если компилятор не заставляет вас, не используйте suspend
.
В большинстве случаев, если у вас есть веская причина для приостановки функции, онозначает, что он делает что-то, что, вероятно, требует от вас использования таких функций приостановки, как withContext
, и это заставит вас объявить вашу функцию suspend
.
Обратите внимание, что объявление функции suspend
не позволяет вашим абонентамделать что-то большее, чем они могли, когда ваша функция не была приостановлена.Во всяком случае, вы ограничиваете использование своей функции.
Я полагаю, что один из вариантов использования функции для приостановки без принуждения - это когда вы действительно абсолютно положительно хотите показать миру, что ваша функция вычислительнотяжелый, и, таким образом, вынудите ваших абонентов справиться с подвеской.