يضبط 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()
الوثائق المرجعية.