我正在创建我的应用程序的新版本,并希望它在Google Play商店中更新应用程序时自动清除本地应用程序数据(SQLite DB)。我需要在更新的应用程序启动之前执行此操作。
为此,我使用了attributeRepository
意图和BroadcastReceiver。在onReceive方法中,我只是删除数据库文件。它适用于大多数设备。
问题是在某些设备(例如三星Galaxy S8)上,onReceive方法会被延迟调用(我不知道为什么)-在应用程序更新并打开后。因此,更新的应用程序启动后,旧的应用程序数据将被清除。
对于其他设备,它工作正常-更新发生时会立即调用onReceive方法,因此当应用启动时->旧应用数据已被清除。
您知道为什么会这样吗?是否有解决方案/解决方法,或者我做错了什么?我很困惑,因为它是特定于设备的问题。我需要在应用启动之前完成对SQLite DB的清除,因此一旦运行,就不会有旧数据。