Sobes.tech
Middle+

Чӣ гуна сохтани WorkManager-и худ дар Android?

sobes.tech AI

Ҷавоб аз AI

  1. Стварыце Configuration:

    Configuration myConfig = new Configuration.Builder()
        .setMinimumLoggingLevel(android.util.Log.DEBUG)
        // дадайце любыя іншыя налады
        .build();
    
  2. Рэалізуйце Configuration.Provider у вашым класе Application:

    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)
                // Наладзьце Executor, калі неабходна
                // .setExecutor( Executors.newFixedThreadPool(8))
                .build();
        }
    
        @Override
        public void onCreate() {
            super.onCreate();
            // Ініцыялізацыя WorkManager адбываецца аўтаматычна пры першым выкарыстанні
            // або пры выкліку WorkManager.getInstance(this)
        }
    }
    
  3. Укажыце ваш клас Application у манифесце:

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

Цяпер WorkManager будзе выкарыстоўваць вашу карыстальніцкую канфігурацыю пры ініцыялізацыі.

Альтэрнатыўны варыянт (для больш поўнага кантролю над ініцыялізацыяй):

  1. Рэалізуйце Configuration.Provider у асобным класе, які не з'яўляецца Application.

  2. У вашым класе Application пераазначце метад onCreate() і ўручную выклічце WorkManager.initialize():

    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)
                // іншыя налады
                .build());
        }
    }
    

Гэты падыход не рэкамендуецца, калі вы проста змяняеце стандартныя опцыі. Configuration.Provider з'яўляецца больш простай і правільнай рэалізацыяй для большасці выпадкаў.