sam*_*gak 2 sqlite android xamarin.forms
我有一个Xamarin Forms应用程序,该应用程序使用SQLite数据库存储用户数据,包括用于通过REST API进行身份验证的登录令牌。
我在Android上遇到一个奇怪的问题,在Visual Studio中通过重新部署应用程序来更新应用程序会导致SQLite数据库中的数据恢复为旧版本(它始终是相同的旧数据)。
我打开SQLiteConnection里面DependencyService像这样:
public SQLite.Net.SQLiteConnection GetConnection()
{
var sqliteFilename = "mydatabase.db3";
string documentsPath = System.Environment.GetFolderPath(System.Environment.SpecialFolder.Personal); // Documents folder
var path = Path.Combine(documentsPath, sqliteFilename);
var platform = new SQLite.Net.Platform.XamarinAndroid.SQLitePlatformAndroid();
var conn = new SQLite.Net.SQLiteConnection(platform, path);
// Return the database connection
return conn;
}
Run Code Online (Sandbox Code Playgroud)
登录令牌存储在数据库的一个表中,该表仅包含一行(当前登录的用户)。
从字面上看,打开数据库并读取此令牌是我在App.xaml.cs中要做的第一件事InitializeComponent。然后,我可以注销并再次登录以刷新令牌,并且该应用程序可以正常运行,并且新数据可以在该应用程序的多次打开和关闭中正确保存。
我的问题是,这个过时的令牌来自哪里?
我试图阻止它出现的一些方法:
System.Environment.SpecialFolder.Personal文件夹中(与相对应/data/user/0/com.example.myapp/files/mydatabase.db3),据我所知,这应该擦除数据库。我的应用程序中只有一个地方,我将令牌插入数据库中(当用户登录时),并且我将其记录到控制台中,并且我的应用程序肯定不会将旧令牌重新插入数据库中。我的项目中没有包含此数据的db3文件。无论如何,它将如何到达那里?
此问题仅在最近几周才开始发生,可能是由于更新所致。在此之前,卸载应用程序足以擦除所有数据。
尽管搜索了SQLite和Xamarin文档,但是显然还有一些额外的数据缓存层,尽管我不知道,但是有人可以告诉我它是什么吗?
| 归档时间: |
|
| 查看次数: |
1606 次 |
| 最近记录: |