Evite borrar los datos de la base de datos al hacer clic en el botón "borrar datos" en la configuración de la aplicación en el dispositivo Android

Estoy utilizando la database de database para almacenar algunos data . Pero cuando el usuario vaya a Apps Setting y presione el botón 'clear data' en la configuración de la aplicación, los datos de las bases de datos se eliminarán, ¿cómo puede evitarlo? ¿Puedo hacer 'clear data' BOTÓN de 'clear data' mi aplicación en las configuraciones de Google Apps como no activado o cualquier otra sugerencia ….

No hay manera directa de evitar que los datos de la aplicación se borren de lo que sé.

Sin embargo, usted podría almacenar sus datos en el almacenamiento externo (tarjeta SD) en algún archivo y en cada comprobación de lanzamiento de la aplicación si ese archivo está allí y fusionar su contenido en la base de datos. Por supuesto, esto no funcionará si el usuario elimina manualmente el archivo de copia de seguridad del SD, inserta otro SD, elimina el SD o conecta el dispositivo como una unidad montada al equipo y, a continuación, inicia la aplicación.

Android no preguntará si su aplicación tiene gusto de sus datos para ser suprimido o no. Es una funcionalidad del sistema proporcionada al usuario. El usuario tiene poder para desinstalar totalmente la aplicación.

Por lo tanto, crear / abrir el archivo de base de datos en otra ubicación.

Durabilidad de los datos:

  1. Directorio de caché de la aplicación: eliminado cuando la memoria interna es baja.
  2. App data dir: eliminado cuando el usuario borra los datos de la aplicación, la aplicación se desinstala.
  3. Almacenamiento externo: el usuario puede eliminar en cualquier momento, el usuario también puede eliminar el almacenamiento.
  4. Administrador de copia de seguridad: las nuevas versiones de Android ofrecen aplicaciones para la copia de seguridad de datos en la nube a través de BackupManager.
  5. Servidor remoto: permanece en el servidor hasta que se borra.

Añadir android:manageSpaceActivity=".ActivityOfMyChoice" a la etiqueta de aplicación de su Manifiesto como:

<application android:label="MyApp" android:icon="@drawable/icon" android:manageSpaceActivity=".ActivityOfMyChoice" >

Entonces, en lugar de "Clear Data", hay un botón para "Manage Space" que lanza ActivityOfMyChoice

ActivityOfMyChoice.java

 public class ActivityOfMyChoice extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); finish(); } 

Así que cuando hacemos clic en la actividad de Mange finalizamos la Actividad.

Finalmente he encontrado alguna solución, Si usted hace que el administrador del sistema de aplicaciones, entonces no es posible borrar los datos y desinstalar la aplicación

Creo que hay un camino pero no lo he probado todavía. Puede almacenar su archivo DB en la carpeta de activos, comprobar si está disponible, de lo contrario simplemente haga esto https://stackoverflow.com/a/9109728/265167 (preste atención a la clase DataBaseHelper). Pero haga de esta manera, perderá todos los "datos de actualización".

  • Android - SQLite Cursor getColumnIndex () es sensible a mayúsculas y minúsculas?
  • Obtener boolean de la base de datos utilizando Android y SQLite
  • SQLite.SQLiteException lanzado en Xamarin.Android al intentar crear una tabla
  • Cómo utilizar join consulta en CursorLoader cuando su constructor no lo admite
  • ¿Cómo actualizar la tabla en sqlite?
  • Acceso directo android, acceso db lanzador
  • cláusula multiple where en android
  • ¿Necesito llamar a getWritableDatabase () cada vez que manipulo datos
  • Identificar el tipo de datos de una columna en un Cursor Android de SQLite
  • Cómo obtener fechas de la base de datos y comprobar si se solapan?
  • Preguntas sobre el uso de Android Backup Service con una base de datos SQLite
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.