由于一些糟糕的决定,我被困onCreate()
在我的SQLiteOpenHelper
课堂上,最多可以运行 5 分钟。用户可以在此过程中关闭手机或强制关闭应用程序,这意味着我的 onCreate() 将被提前取消。如果是这种情况 - 我需要擦除并onCreate()
重新运行数据库。我怎样才能做到这一点?
问问题
133 次
2 回答
1
只需在另一个或后台线程中创建表onCreate()
并初始化数据。Service
在该后台线程中,在初始化数据之前调用beginTransaction()
您的对象。SQLiteDatabase
然后调用setTransactionSuccessful()
,endTransaction()
当它完成时。保留一个标志,SharedPreferences
以便您可以检查此初始化是否已经发生
于 2015-04-30T15:30:46.977 回答
0
您应该使用事务。如果您完成它(当该过程完成时),所有数据都将写入数据库。
否则,他们不会。
如果你不知道什么是事务,这里有一个关于事务的教程:http ://www.tutorialspoint.com/sqlite/sqlite_transactions.htm
简而言之,事务允许您一次写入所有数据;如果开始的事务没有完成,则不会写入数据。
因此,如果发生任何错误或您的用户强制关闭,交易将不会完成,也不会写入任何数据。
于 2015-04-30T15:31:52.953 回答