Sobes.tech
Middle+

Hogyan hozzuk létre saját WorkManager-t Androidon?

sobes.tech MI

Válasz az MI-től

  1. Hozzon létre egy Configuration-t:

    Configuration myConfig = new Configuration.Builder()
        .setMinimumLoggingLevel(android.util.Log.DEBUG)
        // adj hozzá más beállításokat
        .build();
    
  2. Valósítsa meg a Configuration.Provider-t az Application osztályában:

    import androidx.work.Configuration;
    import androidx.work.WorkManager;
    
    public class MyApp extends Application implements Configuration.Provider {
    
        @Override
        public Configuration getWorkManagerConfiguration() {
            return new Configuration.Builder()
                .setMinimumLoggingLevel(android.util.Log.DEBUG)
                // Állítsa be az Executor-t, ha szükséges
                // .setExecutor( Executors.newFixedThreadPool(8))
                .build();
        }
    
        @Override
        public void onCreate() {
            super.onCreate();
            // A WorkManager inicializálása automatikusan megtörténik az első használatkor
            // vagy a WorkManager.getInstance(this) hívásakor
        }
    }
    
  3. Adja meg az Application osztályát a manifestben:

    <application
        android:name=".MyApp"
        ... >
        </application>
    

Mostantól a WorkManager a saját konfigurációját fogja használni az inicializáláskor.

Alternatív (teljesebb kontroll):

  1. Valósítsa meg a Configuration.Provider-t egy külön osztályban, amely nem az Application.

  2. Az Application osztályban írja felül az onCreate() metódust, és hívja meg manuálisan a WorkManager.initialize()-t:

    import androidx.work.Configuration;
    import androidx.work.WorkManager;
    
    public class MyApp extends Application {
    
        @Override
        public void onCreate() {
            super.onCreate();
            WorkManager.initialize(this, new Configuration.Builder()
                .setMinimumLoggingLevel(android.util.Log.DEBUG)
                // más beállítások
                .build());
        }
    }
    

Ez a megközelítés nem ajánlott, ha csak a standard opciókat módosítja. A Configuration.Provider egyszerűbb és helyesebb megoldás a legtöbb esetben.