Android 安卓:需要一个“建议”;“注销”-按钮实现

Android 安卓:需要一个“建议”;“注销”-按钮实现,android,Android,我需要一个建议。我需要在我的应用程序中实现一个“注销”按钮。当用户按下它时,我应该清理数据库并打开主屏幕。我刚刚在数据库中删除了所有表。但是我突然发现,如果一个用户在另一个线程中刷新数据(解析并保存到DB)时单击“注销”,那么我会得到“SQLiteException:没有这样的表”。所以问题是:如何正确地实施注销?一些变体:禁用“注销”按钮还是在数据同步完成之前不删除表?还是你的变种 在应用程序实现过程中,我遵循了MVP模式。因此,我的视图(activity/fragment)调用present

我需要一个建议。我需要在我的应用程序中实现一个“注销”按钮。当用户按下它时,我应该清理数据库并打开主屏幕。我刚刚在数据库中删除了所有表。但是我突然发现,如果一个用户在另一个线程中刷新数据(解析并保存到DB)时单击“注销”,那么我会得到“SQLiteException:没有这样的表”。所以问题是:如何正确地实施注销?一些变体:禁用“注销”按钮还是在数据同步完成之前不删除表?还是你的变种

在应用程序实现过程中,我遵循了MVP模式。因此,我的视图(activity/fragment)调用presenter的(由dagger2提供的作用域单音)加载方法,presenter调用intercator来启动数据同步。另外,如果能看到加载数据的模式,那将非常棒。据我所知,有人更喜欢使用android服务

TIA

对于一个想法

  • 您可以将共享首选项中的标志保留为“tabledCleared”
  • 用户单击注销后,将值更新为0,然后开始清除表。如果表清除已完成,则将值更新为1
  • 如果清除被中断,值将保持为0
  • 在下一次加载时检查值。如果为0,请在重新加载新值之前再次清除表

  • 我不会删除表,简单地删除所有行就足够了根据谷歌的建议,表应该在
    SQLiteOpenHelper.onCreate/onUpgrade
    实现中创建/更改,但如何避免数据重复?如果在处理数据的线程仍在工作时重置应用程序,我将删除所有行,但该线程将在表中保存一些数据……那么,在启动“全部删除”进程时,您必须确保没有其他线程正在运行。如果你做不到,那么你的应用程序就注定要失败:)