Хмммм ... к сожалению, я подозреваю, что там нет простого ответа. Я думаю, именно поэтому встроенный медиаплеер и Pandora используют уведомление, чтобы легко позволить пользователю вернуться в приложение, чтобы оно закрылось.
Если ваш поток действий довольно линейный, то отказ от приложения аналогичен отказу от исходного действия.
Уловка, которую я использовал в одном сценарии, заключалась в том, чтобы каждое действие уведомляло службу в onPause()
и onResume()
. Служба будет отслеживать их, и если через какое-то время она получит onPause()
без последующих onResume()
, предполагается, что пользователь исчез (HOME, входящий телефонный звонок, входящее текстовое сообщение, ответ на какое-либо приложение через уведомление и т. д.).
Вы также можете посмотреть ACTION_SCREEN_OFF
трансляцию Intents
, чтобы справиться с этим сценарием.
Мне жаль, что у меня нет лучшего ответа серебряной пули - возможно, у кого-то еще будет лучшая идея.