إعداد وتهيئة WorkManager

يضبط WorkManager نفسه تلقائيًا عند بدء تشغيل تطبيقك، باستخدام خيارات معقولة تناسب معظم التطبيقات. إذا كنت بحاجة إلى المزيد في كيفية إدارة WorkManager ومواعيده، يمكنك تخصيص تهيئة WorkManager من خلال إعداد WorkManager بنفسك.

الإعداد عند الطلب

يتيح لك الإعداد عند الطلب إنشاء WorkManager فقط عندما يكون هذا المكون بدلاً من كل مرة يبدأ فيها التطبيق. يؤدي إجراء ذلك إلى إيقاف WorkManager مسار بدء التشغيل الحرج، وتحسين أداء بدء تشغيل التطبيق. لاستخدام المحتوى عند الطلب الإعداد:

إزالة أداة الإعداد التلقائية

لتوفير إعداداتك الخاصة، يجب أولاً إزالة الإعدادات التلقائية أداة تهيئة الإعدادات. ولإجراء ذلك، عليك تحديث AndroidManifest.xml باستخدام قاعدة الدمج tools:node="remove".

يتم استخدام App Startup منذ الإصدار WorkManager 2.6. داخليًا في WorkManager. لتوفير برنامج تهيئة مخصص، يجب أزِل العقدة androidx.startup.

في حال عدم استخدام ميزة App Startup في تطبيقك، يمكنك إزالتها بالكامل.

 <!-- If you want to disable android.startup completely. -->
 <provider
    android:name="androidx.startup.InitializationProvider"
    android:authorities="${applicationId}.androidx-startup"
    tools:node="remove">
 </provider>

في الحالات الأخرى، يجب إزالة العقدة WorkManagerInitializer فقط.

 <provider
    android:name="androidx.startup.InitializationProvider"
    android:authorities="${applicationId}.androidx-startup"
    android:exported="false"
    tools:node="merge">
    <!-- If you are using androidx.startup to initialize other components -->
    <meta-data
        android:name="androidx.work.WorkManagerInitializer"
        android:value="androidx.startup"
        tools:node="remove" />
 </provider>

أثناء استخدام إصدار WorkManager أقدم من 2.6، قم بإزالة workmanager-init بدلاً من ذلك:

<provider
    android:name="androidx.work.impl.WorkManagerInitializer"
    android:authorities="${applicationId}.workmanager-init"
    tools:node="remove" />

لمزيد من المعلومات حول استخدام قواعد الدمج في البيان، يُرجى الاطّلاع على المستندات على دمج ملفات بيان متعددة.

تنفيذ Configuration.Provider

اطلب من صف Application تنفيذ Configuration.Provider وتوفير واجهة برمجة تطبيقات خاصة بك Configuration.Provider.getWorkManagerConfiguration عندما تحتاج إلى استخدام WorkManager، تأكد من استدعاء الطريقة WorkManager.getInstance(Context) يستدعي WorkManager طريقة getWorkManagerConfiguration() المخصّصة لتطبيقك من أجل لاكتشاف Configuration. (لا تحتاج إلى الاتصال WorkManager.initialize بنفسك).

في ما يلي مثال على عملية تنفيذ getWorkManagerConfiguration() مخصّصة:

Kotlin

class MyApplication() : Application(), Configuration.Provider {
     override fun getWorkManagerConfiguration() =
           Configuration.Builder()
                .setMinimumLoggingLevel(android.util.Log.INFO)
                .build()
}

Java

class MyApplication extends Application implements Configuration.Provider {
    @Override
    public Configuration getWorkManagerConfiguration() {
        return new Configuration.Builder()
                .setMinimumLoggingLevel(android.util.Log.INFO)
                .build();
    }
}

الإعداد المخصّص قبل الإصدار 2.1.0 من WorkManager

بالنسبة إلى إصدارات WorkManager التي تسبق الإصدار 2.1.0، هناك نوعان من التهيئة الخيارات. في معظم الحالات، الإعداد التلقائي هي كل ما تحتاجه. للتحكّم بشكل أكثر دقة في WorkManager، يمكنك تحديد الإعدادات الخاصة بك.

الإعداد التلقائي

يستخدم WorkManager عنصر ContentProvider مخصّصًا لإعداد نفسه عندما يكون تطبيقك تبدأ. يتوفّر هذا الرمز في الفئة الداخلية. يتم استخدام androidx.work.impl.WorkManagerInitializer ويستخدم الخيار التلقائي. Configuration يتم استخدام أداة الإعداد التلقائية تلقائيًا ما لم إيقافها بشكلٍ صريح أداة الإعداد التلقائية مناسبة لمعظم التطبيقات.

إعداد مخصّص

إذا كنت تريد التحكم في عملية الإعداد، يجب إيقاف أداة الإعداد التلقائية، ثم تحديد التهيئة المخصصة الخاصة بك.

وبعد إزالة أداة الإعداد التلقائية، يمكنك إعداد مدير العمل:

Kotlin

// provide custom configuration
val myConfig = Configuration.Builder()
    .setMinimumLoggingLevel(android.util.Log.INFO)
    .build()

// initialize WorkManager
WorkManager.initialize(this, myConfig)

Java

// provide custom configuration
Configuration myConfig = new Configuration.Builder()
    .setMinimumLoggingLevel(android.util.Log.INFO)
    .build();

//initialize WorkManager
WorkManager.initialize(this, myConfig);

تأكد من تهيئة WorkManager يدير سينغلتون إما Application.onCreate() أو في ContentProvider.onCreate()

للحصول على القائمة الكاملة للتخصيصات المتاحة، يُرجى الاطّلاع على Configuration.Builder() الوثائق المرجعية.