diff --git a/lib/widget/home.dart b/lib/widget/home.dart
index 60ea166d..8e32724d 100644
--- a/lib/widget/home.dart
+++ b/lib/widget/home.dart
@@ -1,11 +1,8 @@
 import 'package:flutter/material.dart';
 import 'package:flutter/widgets.dart';
 import 'package:flutter_gen/gen_l10n/app_localizations.dart';
-import 'package:kiwi/kiwi.dart';
 import 'package:nc_photos/account.dart';
 import 'package:nc_photos/k.dart' as k;
-import 'package:nc_photos/metadata_task_manager.dart';
-import 'package:nc_photos/pref.dart';
 import 'package:nc_photos/theme.dart';
 import 'package:nc_photos/widget/home_albums.dart';
 import 'package:nc_photos/widget/home_photos.dart';
@@ -39,11 +36,6 @@ class _HomeState extends State<Home> {
   @override
   initState() {
     super.initState();
-    if (Pref.inst().isEnableExif()) {
-      KiwiContainer()
-          .resolve<MetadataTaskManager>()
-          .addTask(MetadataTask(widget.account));
-    }
     _pageController = PageController(initialPage: 0, keepPage: false);
   }
 
diff --git a/lib/widget/home_photos.dart b/lib/widget/home_photos.dart
index 65b9e1d9..f66b99ec 100644
--- a/lib/widget/home_photos.dart
+++ b/lib/widget/home_photos.dart
@@ -228,6 +228,14 @@ class _HomePhotosState extends State<HomePhotos>
       itemStreamListItems = [];
     } else if (state is ScanDirBlocSuccess || state is ScanDirBlocLoading) {
       _transformItems(state.files);
+      if (state is ScanDirBlocSuccess) {
+        if (Pref.inst().isEnableExif() && !_hasFiredMetadataTask) {
+          KiwiContainer()
+              .resolve<MetadataTaskManager>()
+              .addTask(MetadataTask(widget.account));
+          _hasFiredMetadataTask = true;
+        }
+      }
     } else if (state is ScanDirBlocFailure) {
       SnackBarManager().showSnackBar(SnackBar(
         content: Text(exception_util.toUserString(state.exception, context)),
@@ -489,6 +497,7 @@ class _HomePhotosState extends State<HomePhotos>
   double _prevListWidth;
   double _appBarExtent;
 
+  static var _hasFiredMetadataTask = false;
   static final _log = Logger("widget.home_photos._HomePhotosState");
   static const _menuValueRefresh = 0;
 }