Ho due domande principali.Il database non verrà rimosso quando si disinstalla l'applicazione Android
- Il database non verrà eliminato quando si disinstalla l'app.
- I file scaricati non vengono eliminati quando l'app è instabile.
C'è un database nella mia applicazione Android. Lo creo da Java
class as follows.
public DataBaseHelper(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
public DataBaseHelper(Context context, String name, SQLiteDatabase.CursorFactory factory, int version, DatabaseErrorHandler errorHandler) {
super(context, name, factory, version, errorHandler);
}
@Override
public void onCreate(SQLiteDatabase db) {
// creating required tables
db.execSQL(CREATE_TABLE_QUOTES);
db.execSQL(CREATE_TABLE_FILTERS);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// on upgrade drop older tables
db.execSQL("DROP TABLE IF EXISTS " + TABLE_QUOTES);
db.execSQL("DROP TABLE IF EXISTS " + TABLE_QUOTES);
// create new tables
onCreate(db);
}
Non v'è alcun percorso specifico definito il codice per il database.
Questo è il codice di come scaricare i file. E c'è un percorso specifico, ma non è permesso creare cartella anche in Android> data> com.myapp.
public String downloadImage(String img_url, int i) {
File sdCard = Environment.getExternalStorageDirectory();
File dir = new File (sdCard.getAbsolutePath() + "/fog/images/filters");
// Make sure the Pictures directory exists.
dir.mkdirs();
File destinationFile = new File(dir, "filter"+i);
String filepath = null;
try{
URL url = new URL("http://fog.wrapper.io/uploads/category/"+img_url+".png");
HttpURLConnection conection = (HttpURLConnection)url.openConnection();
conection.setRequestMethod("GET");
conection.setRequestProperty("Content-length", "0");
conection.setUseCaches(false);
conection.setAllowUserInteraction(false);
conection.connect();
int status = conection.getResponseCode();
switch (status) {
case 200:
case 201:
FileOutputStream fileOutput = new FileOutputStream(destinationFile);
InputStream inputStream = conection.getInputStream();
int totalSize = conection.getContentLength();
int downloadedSize = 0;
byte[] buffer = new byte[1024];
int bufferLength = 0;
while ((bufferLength = inputStream.read(buffer)) > 0)
{
fileOutput.write(buffer, 0, bufferLength);
downloadedSize += bufferLength; Log.i("Progress:","downloadedSize:"+downloadedSize+"totalSize:"+ totalSize) ;
}
fileOutput.close();
if(downloadedSize==totalSize) filepath = destinationFile.getPath();
Log.i("filepath:"," "+filepath) ;
return filepath;
}
} catch (IOException e) {
Log.d("ImageManager", "Error: " + e);
}
return null;
}
} // Get filters
Per favore aiutatemi. Scusa per il pessimo inglese.
ringrazio molto, vado a controllare questo e tornare a voi presto se non v'è alcun problema . – KZoNE
Ho lo stesso problema. Ho aggiornato il nostro DatabaseHelper a una nuova versione e ho installato l'app in modalità di debug. Dopo aver terminato la mia funzione appena implementata, ho usato git per recuperare alcuni commit prima e ho provato ad installare la vecchia versione dell'app. Sfortunatamente non funziona, perché l'app dà sempre l'errore, che non può effettuare il downgrade del database. Questo messaggio appare anche se ho cancellato l'app manualmente prima di installare la versione precedente. Quindi sto arrivando al risultato, che il database non sembra essere cancellato, se disinstallo un'applicazione ... davvero frustrante e fastidioso. – jennymo