يضبط تطبيق WorkManager تلقائيًا عند بدء تشغيل تطبيقك باستخدام خيارات معقولة تناسب معظم التطبيقات. إذا كنت بحاجة إلى مزيد من التحكّم في طريقة إدارة WorkManager وجدولتها، يمكنك تخصيص إعدادات WorkManager من خلال إعداد WorkManager بنفسك.
إعداد المحتوى عند الطلب
تتيح لك التهيئة عند الطلب إنشاء WorkManager فقط عند الحاجة إلى ذلك المكون، بدلاً من كل مرة يتم فيها تشغيل التطبيق. يؤدي ذلك إلى نقل WorkManager خارج مسار بدء التشغيل الحرج لديك، مما يؤدي إلى تحسين أداء بدء تشغيل التطبيق. لاستخدام التهيئة عند الطلب:
إزالة المهيئ التلقائي
لتوفير التهيئة الخاصة بك، يجب عليك أولاً إزالة المهيئ الافتراضي. لإجراء ذلك، عليك تعديل AndroidManifest.xml
باستخدام قاعدة الدمج tools:node="remove"
.
منذ الإصدار 2.6 من WorkManager، يتم استخدام App Startup
داخليًا ضمن 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
.
ويتم استخدام المهيئ التلقائي بشكل تلقائي ما لم توقِفه صراحةً.
يُعد المهيئ التلقائي مناسبًا لمعظم التطبيقات.
إعداد مخصّص
إذا كنت تريد التحكم في عملية الإعداد، يجب إيقاف المهيئ التلقائي، ثم تحديد الإعداد المخصّص الذي تريده.
بعد إزالة أداة الإعداد التلقائية، يمكنك إعداد WorkManager يدويًا:
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()
.