我有一个访问sqlite数据库的模块,用于写入从webservice下载的所有数据。因为插入行需要花费很多时间,所以它由后台的独立线程启动,因此UI线程是安全的。问题是,这个过程可以在数据库仍在升级时调用,从而导致重复的行(因为来自webservice的数据总是相同,加上新内容)
我需要一些可以询问SQLite是否升级并等到它结束以调用新升级的东西。任何有关SOLID原则的想法?
答案 0 :(得分:1)
如果你在后台线程上运行它,请检查thread.isAlive()。
或者,只需使用布尔标志并在启动线程之前将其设置为true。
我会去布尔选项beacuse可能会有一个短暂的延迟,直到你的线程启动并运行,如果你的主线程尝试快速连续启动两次线程,它可能会在线程上得到“假”否定。的IsAlive()。
希望这有帮助!