我有一个使用PreferenceManager保存一些设置的应用。稍后我卸载了应用程序,之后我想在重新安装相同的应用程序时检索相同的设置。 例如:我有一个复选框,其状态使用首选项管理器保存,然后卸载应用程序。稍后,当我重新安装应用程序时,我需要获取该复选框的状态。 这可能吗? 如果没有使用preferenceManager,还有其他方法可以做到这一点,即保存在DB中吗?
答案 0 :(得分:0)
卸载应用后,不会保留SharedPreference和Database 话虽这么说,Android提供了一种简单的方法,可以将您的SharedPreferences发送到云,并在重新安装应用时检索它们。这种机制称为BackupAgentHelper。
答案 1 :(得分:0)
您可以在外部存储中保留共享首选项的备份文件,并在再次安装应用程序时,可以从备份文件更新共享首选项。或者您可以使用BackupAgentHelper/SharedPreferenceBackupHelper
将数据存储在云上。
但是对于SQLite
,如果将数据库文件保存在不同的目录中,则卸载应用程序时Android不会删除这些文件。
对于SQLite数据库,您可以在SQLiteOpenHelper构造函数中设置数据库目录。假设您希望将路径设置为:
final static String DB_PATH = Environment.getExternalStorageDirectory().getAbsolutePath().concat("/databases/my_db.db");
然后在sqlite帮助器中将其设置如下:
public DbHelper(Context context, String name, CursorFactory factory,
int version) {
super(context, DB_PATH, factory, version);
}
同时,如果是SharedPreferences,您可以将文件从默认的应用程序数据目录复制到您在SD卡中选择的文件夹中。您需要注意这里,以便选择何时备份SharedPreferences文件的适当时机。作为IO操作,可能需要一些时间来完成。