2011-07-01 10 views
8

W których przypadkach powinienem zabronić użytkownikom przeniesienia mojej aplikacji na kartę SD (ustawiając installLocation na internalOnly)?Kiedy należy określić, że moja aplikacja na Androida nie jest przenoszona na kartę SD (installLocation = internalOnly)?

Proszę o informacje na temat kilku aplikacji, więc proszę nie pytać o moją aplikację. Chcę to wiedzieć ogólnie dla każdej aplikacji.

+0

http://www.thedan1984.com/moving-apps-to-sd-card-samsung-galaxy-precedent#comment-802 –

Odpowiedz

11

Wymagania są całkiem niezłe described in the documentation. Przede wszystkim, jeśli uruchamiasz coś w tle, które musi działać przez cały czas, na przykład usługę, lub jeśli udostępniasz widżety, możesz uruchomić z pamięci zewnętrznej. Ale gdy tylko użytkownik odmontuje pamięć zewnętrzną, proces, w którym te rzeczy się uruchamiają, zostanie zakończony.

+0

Oczywiście można włączyć do * * zainstalować go na karta SD. Ale użytkownicy muszą być świadomi faktu, że jeśli to zrobią, ich widget umrze, gdy karta SD zostanie odłączona. –

+0

Dzięki @Peter Lillevold! – Diego

2

Dokumentacja Android ma dość obszerną listę na ten temat - http://developer.android.com/guide/appendix/install-location.html

Kluczową kwestią jest to, że gdy użytkownik zaczyna używać urządzenia jako napędu USB, Android zabije wszystko, co związane z aplikacją. Tak więc wszystko, co musi działać w tle, aby poprawnie działać lub musi korzystać z pamięci zewnętrznej, nie powinno być umieszczane na karcie SD.

8

Jeśli zdefiniujemy android:installLocation="auto" wewnątrz manifest wewnątrz AndroidManifest.xml złożyć następnie a następnie (tak to musi) będzie to pozwala użytkownikowi przenieść aplikację opcji karty SD.

Istnieją 3 wartości można ustawić na Androidzie: atrybutów InstallLocation:

android:installLocation="auto" 
android:installLocation="internalOnly" 
android:installLocation="preferExternal" 
+2

Nie o to chodzi w tym pytaniu, prawda? –

0

spojrzeć this aplikacji na PS.

Usługa nie może się zatrzymać i powinna działać całą noc. W tego rodzaju scenariuszach, jak sugeruje Peter Lillevold. wyraźnie musimy wspomnieć android:installLocation="internalOnly"