Когда я должен определить свое приложение для 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"

Другие вопросы по тегам