diff --git a/lib/pages/main/view.dart b/lib/pages/main/view.dart index c831291b3..fd3b45638 100644 --- a/lib/pages/main/view.dart +++ b/lib/pages/main/view.dart @@ -139,7 +139,9 @@ class _MainAppState extends State } } - void _onClose() { + Future _onClose() async { + await GStorage.compact(); + await GStorage.close(); if (Platform.isWindows) { const MethodChannel('window_control').invokeMethod('closeWindow'); } else { diff --git a/lib/utils/accounts.dart b/lib/utils/accounts.dart index 6798bf7a6..954177a9b 100644 --- a/lib/utils/accounts.dart +++ b/lib/utils/accounts.dart @@ -92,12 +92,6 @@ abstract class Accounts { Request.buvidActive(AnonymousAccount()); } - static void close() { - account - ..compact() - ..close(); - } - static Future deleteAll(Set accounts) async { var isloginMain = Accounts.main.isLogin; for (int i = 0; i < AccountType.values.length; i++) { diff --git a/lib/utils/storage.dart b/lib/utils/storage.dart index 2ade7a1e8..638a231f9 100644 --- a/lib/utils/storage.dart +++ b/lib/utils/storage.dart @@ -86,24 +86,25 @@ abstract class GStorage { ..registerAdapter(RuleFilterAdapter()); } - static void close() { - // user.compact(); - // user.close(); - userInfo - ..compact() - ..close(); - historyWord - ..compact() - ..close(); - localCache - ..compact() - ..close(); - setting - ..compact() - ..close(); - video - ..compact() - ..close(); - Accounts.close(); + static Future compact() async { + await Future.wait([ + userInfo.compact(), + historyWord.compact(), + localCache.compact(), + setting.compact(), + video.compact(), + Accounts.account.compact(), + ]); + } + + static Future close() async { + await Future.wait([ + userInfo.close(), + historyWord.close(), + localCache.close(), + setting.close(), + video.close(), + Accounts.account.close(), + ]); } }