Из-за подавляющих жалоб пользователей я решил попробовать разрешить пользователям моего приложения Android переместить его на SD-карту в соответствии с официальной документацией. Однако основной особенностью моего приложения является необходимость постоянной работы фоновой службы. Когда кто-то, кто перенес свое приложение на SD-карту, по какой-то причине монтирует свою SD-карту, мое фоновое обслуживание будет убито.
Это все в порядке, если я могу перезапустить службу при первой доступной возможности. К сожалению, несмотря на install-location, утверждая, что я могу использовать трансляцию Inta ACTION_EXTERNAL_APPLICATIONS_AVAILABLE
, чтобы обнаружить, когда SD-карта повторно монтируется локально, документация для этого самого флага, это обсуждение в группе новостей и мое собственное тестирование показывают, что эта передача не доставляется в приложения, которые становятся доступными. Только приложения, которые не были перенесены на SD-карту, получают трансляцию.
Есть ли способ перезагрузить мою фоновую службу, не дожидаясь, пока пользователь откроет мое приложение после перезагрузки SD-карты?