延迟触发的BroadcastReceiver onReceive方法?

时间:2019-03-01 22:51:19

标签: java android

我正在创建我的应用程序的新版本,并希望它在Google Play商店中更新应用程序时自动清除本地应用程序数据(SQLite DB)。我需要在更新的应用程序启动之前执行此操作。 为此,我使用了attributeRepository意图和BroadcastReceiver。在onReceive方法中,我只是删除数据库文件。它适用于大多数设备。 问题是在某些设备(例如三星Galaxy S8)上,onReceive方法会被延迟调用(我不知道为什么)-在应用程序更新并打开后。因此,更新的应用程序启动后,旧的应用程序数据将被清除。

对于其他设备,它工作正常-更新发生时会立即调用onReceive方法,因此当应用启动时->旧应用数据已被清除。

您知道为什么会这样吗?是否有解决方案/解决方法,或者我做错了什么?我很困惑,因为它是特定于设备的问题。我需要在应用启动之前完成对SQLite DB的清除,因此一旦运行,就不会有旧数据。

0 个答案:

没有答案