2011-08-19 13 views

Respuesta

9

general Sin realidad. Cuando desinstala, el propio APK (/data/app/com.example.app-1.apk) y los datos (sharedprefs/db/etc) en /data/data/com.example.app se eliminan, pero solo Android > = 2.2 también eliminará cualquier cosa de la tarjeta SD, y solo un directorio específico (/sdcard/Android/data/com.example.app generalmente).

Sin embargo, algunas versiones anteriores de Froyo también tendrán una aplicación delete when updating, lo que lo hace bastante peligroso de usar para el almacenamiento persistente.

+0

Ok, entonces, ¿cómo y dónde debo almacenar estos archivos para evitar ese comportamiento impredecible? Si se almacena en el almacenamiento interno, pronto se llena y comienza a dar SqliteFullException. ¿Cuál es la mejor opción para almacenar una gran cantidad de archivos? – techno

+0

Uso /sdcard/data/com.example.app. Es consistente en que nunca será eliminado en la desinstalación o actualización. Y no está en el nivel raíz para que los usuarios no odien el desastre que deja atrás. En lugar de hardcoding "/ sdcard", use Environment.getExternalStorageDirectory() y anexe/data/y su nombre de paquete. –

+0

Entonces, si uso /sdcard/data/com.example.app, entonces todos los dbs se eliminarán en la desinstalación, ¿no? Además, ¿los usuarios pueden acceder a estos archivos? – techno

2

Depende. Si coloca sus archivos en algún lugar arbitrario en el almacenamiento externo (tarjeta SD), no se eliminarán después de que desinstaló su aplicación. Si usó getExternalFilesDir() (Android 2.2+) para obtener el directorio donde almacenar sus archivos, estos se eliminarán cuando la aplicación se desinstale. En algunas versiones anteriores de Froyo, aparentemente hay un error que elimina los archivos incluso en las actualizaciones de la aplicación, por lo que es posible que desee tener cuidado con esto.

Cuestiones relacionadas