Когда я должен определить свое приложение для Android как не переносимое на SD-карту (installLocation = internalOnly)? - PullRequest
8 голосов
/ 01 июля 2011

В каких случаях я должен запретить пользователям перемещать мое приложение на SD-карту (установив installLocation в internalOnly)?

Я прошу узнать это для нескольких приложений, поэтому, пожалуйста, не спрашивайте о моем приложении. Я хочу знать это в целом для любого приложения.

Ответы [ 4 ]

11 голосов
/ 01 июля 2011

Требования довольно хорошо описаны в документации . Прежде всего, если вы запускаете что-либо в фоновом режиме, которое должно выполняться постоянно, например, службу, или если вы предоставляете виджеты, вы можете запускать из внешнего хранилища. Но как только пользователь отключит внешнее хранилище, процесс, в котором выполняются эти действия, будет остановлен.

8 голосов
/ 01 июля 2011

Если вы определите android:installLocation="auto" внутри manifest внутри файла AndroidManifest.xml , тогда и затем (да, это необходимо) позволит пользователю переместить приложение на SD-карту.

Есть 3 значения, которые вы можете установить для android: атрибут installLocation:

android:installLocation="auto"
android:installLocation="internalOnly"
android:installLocation="preferExternal"
2 голосов
/ 01 июля 2011

В документации Android есть довольно полный список об этом - http://developer.android.com/guide/appendix/install-location.html

Ключевым моментом является то, что когда пользователь начинает использовать устройство в качестве USB-накопителя, Android уничтожит все, что связано с вашим приложением.Поэтому все, что должно работать в фоновом режиме для правильной работы или использования внешнего хранилища, не следует помещать на SD-карту.

0 голосов
/ 03 июля 2015

Взгляните на это приложение на PS.

Служба не должна останавливаться и работать всю ночь.В такого рода сценарии, как предложено Питером Лиллевольдом.Мы должны явно упомянуть android:installLocation="internalOnly"

...