在我的登录Activity中,在使用登录后,我同步数据并在sql中创建几个表。 如果用户在此过程完成之前打开另一个应用程序,我想取消它并删除表。 我以为我可以将它放在onPause或onStop中,但是当进程完成并转到仪表板活动时,应该调用onPause或onStop,我不希望这样。
我认为解决方案很简单,但我无法弄清楚如何解决它。
有什么想法吗?
答案 0 :(得分:0)
您的解决方案背后的逻辑很简单 - 在启动事务时创建一个标志(比如shouldRollback)为true。成功完成事务后,将此标志设置为false。在onPause()方法中,只需检查此标志即可。如果是,您知道需要回滚更改。
如果这是您的要求,我只会建议。就个人而言,我会在后台线程中处理所有数据库操作。即使打开了其他应用程序,该线程也可以在后台运行。将有太多的开销(如果你有大量的事务)来继续回滚插入。如果未成功完成更改,则可以使用SQLiteDatabase对象中的事务方法自动回滚更改。