Когда я должен определить свое приложение для Android как не переносимое на SD-карту (installLocation=internalOnly)?
В каких случаях я должен запретить пользователям перемещать мое приложение на SD-карту (установив installLocation
в internalOnly
)?
Я прошу знать это для нескольких приложений, поэтому, пожалуйста, не спрашивайте о моем приложении. Я хочу знать это в целом для любого приложения.
4 ответа
Требования довольно хорошо описаны в документации. Прежде всего, если вы выполняете что-либо в фоновом режиме, которое должно выполняться постоянно, например, службу, или если вы предоставляете виджеты, вы можете запускать из внешнего хранилища. But as soon as the user unmount the external storage, the process in which these things run will be terminated.
Если вы определите android:installLocation="auto"
внутри manifest
внутри файла AndroidManifest.xml время от времени(да, обязательно) он позволяет пользователю перемещать приложение на SD-карту.
Есть 3 значения, которые вы можете установить для Android: атрибут installLocation:
android:installLocation="auto"
android:installLocation="internalOnly"
android:installLocation="preferExternal"
В документации Android есть довольно полный список об этом - http://developer.android.com/guide/appendix/install-location.html
Ключевым моментом является то, что когда пользователь начинает использовать устройство в качестве USB-накопителя, Android уничтожит все, что связано с вашим приложением. Таким образом, все, что должно работать в фоновом режиме для правильной работы или использования внешнего хранилища, не следует помещать на SD-карту.
Взгляните на это приложение на PS.
Служба не должна останавливаться и работать всю ночь. В такого рода сценарии, как предложено Питером Лиллевольдом. Мы должны явно упомянуть
android:installLocation="internalOnly"