У меня есть IntentService, который запускается из Activity, и я хотел бы иметь возможность немедленно прекратить работу службы с помощью кнопки "cancel" в действии. Как только эта кнопка "отменить" будет нажата, я хочу, чтобы служба прекратила выполнение строк кода.
Я нашел несколько вопросов, подобных этому (т.е. здесь, здесь, здесь, здесь), но нет хороших ответов. Activity.stopService() и Service.stopSelf() немедленно выполните метод Service.onDestroy(), но затем пусть код в onHandleIntent() закончен до полного уничтожения службы.
Поскольку, по-видимому, нет гарантированного способа немедленно прекратить поток обслуживания, единственное рекомендуемое решение, которое я могу найти (здесь), должно быть логическую переменную-член в службе, которая может быть переключена в методе onDestroy(), а затем имеет примерно каждую строку кода в onHandleIntent(), завернутую в свое собственное предложение if if, рассматривающее эту переменную. Это ужасный способ написать код.
Знает ли кто-нибудь лучший способ сделать это в IntentService?