I made class DBHelper(Note:GeneralPath - singletone with String variable "path"). This works. Inside constructor of DBHelper i send variable with SQLiteDatabase path to variable in singletone (later in BackupAgentHelper i get this variable)
public class DBHelper extends SQLiteOpenHelper {
GeneralPath generalPath;
public DBHelper(Context context, String name, SQLiteDatabase.CursorFactory factory, int version) {
super(context, Constants.DATABASE_FILE_NAME, factory, Constants.DATABASE_VERSION_1);
generalPath = GeneralPath.getInstance();
SQLiteDatabase db = getReadableDatabase();
generalPath.setPath(db.getPath());
}
@Override
public void onCreate(SQLiteDatabase db) {
String query = "CREATE TABLE " + Constants.PERSONS_TABLE_NAME + "(" +
"" + Constants.TABLE_COLUMN_ID + " INTEGER PRIMARY KEY AUTOINCREMENT, " +
"" + Constants.TABLE_COLUMN_FOR_NAME + " TEXT, "+
"" + Constants.TABLE_COLUMN_FOR_INFO + " TEXT )";
db.execSQL(query);
generalPath.setPath(db.getPath());
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
db = getWritableDatabase();
db.execSQL("DROP TABLE IF EXISTS " + Constants.PERSONS_TABLE_NAME);
onCreate(db);
generalPath.setPath(db.getPath());
}
public void addPerson (Person person) {
ContentValues values = new ContentValues();
values.put(Constants.TABLE_COLUMN_FOR_NAME, person.getName());
values.put(Constants.TABLE_COLUMN_FOR_INFO, person.getDescription());
SQLiteDatabase db = getWritableDatabase();
db.insert(Constants.PERSONS_TABLE_NAME, null, values);
}
public List getPersonsList (){
List <Person> persons = new ArrayList<>();
SQLiteDatabase db = getReadableDatabase();
String query = " SELECT * FROM " + Constants.PERSONS_TABLE_NAME;
Cursor cursor = db.rawQuery(query, null);
cursor.moveToFirst();
while (!cursor.isAfterLast()){
if(cursor.getString(cursor.getColumnIndex(Constants.TABLE_COLUMN_FOR_NAME))!=null){
Person person = new Person(null, null);
person.setName(cursor.getString(cursor.getColumnIndex(Constants.TABLE_COLUMN_FOR_NAME)));
person.setDescription(cursor.getString(cursor.getColumnIndex(Constants.TABLE_COLUMN_FOR_INFO)));
persons.add(person);
cursor.moveToNext();
}
}
db.close();
return persons;
}
then i made Class DataBackupAgent class to backup.
public class DataBackupAgent extends BackupAgentHelper {
GeneralPath generalPath;
@Override
public void onCreate() {
super.onCreate();
generalPath = GeneralPath.getInstance();
FileBackupHelper dbs = new FileBackupHelper(this, generalPath+ Constants.DATABASE_FILE_NAME);
addHelper("dbs", dbs);
}
public static void requestBackup(Context context) {
BackupManager backupManager = new BackupManager(context);
backupManager.dataChanged();
}
Nothing happening when i call requestBackup
Aucun commentaire:
Enregistrer un commentaire