कस्टम WorkManager कॉन्फ़िगरेशन और प्रोसेस शुरू करना

डिफ़ॉल्ट रूप से, आपका ऐप्लिकेशन शुरू होने पर, WorkManager खुद को अपने-आप कॉन्फ़िगर करता है. ऐसे उचित विकल्पों का इस्तेमाल करना जो ज़्यादातर ऐप्लिकेशन के लिए सही हैं. अगर आपको इससे ज़्यादा WorkManager के काम करने और शेड्यूल करने के तरीके को कंट्रोल करने के लिए, WorkManager कॉन्फ़िगरेशन को खुद शुरू करके.

मांग पर शुरू करना

मांग पर शुरू करने की सुविधा से, सिर्फ़ तब WorkManager बनाया जा सकता है, जब वह कॉम्पोनेंट हर बार ऐप्लिकेशन के शुरू होने पर इसका इस्तेमाल करने के बजाय, इसकी ज़रूरत पड़ती है. ऐसा करने से WorkManager बंद हो जाता है आपका ज़रूरी स्टार्टअप पाथ, ऐप्लिकेशन के स्टार्टअप की परफ़ॉर्मेंस को बेहतर बनाना. मांग पर सुविधा इस्तेमाल करने के लिए शुरू करना:

डिफ़ॉल्ट शुरू करने वाला टूल हटाएं

अपना कॉन्फ़िगरेशन उपलब्ध कराने के लिए, डिफ़ॉल्ट सेटिंग को हटाना होगा शुरू करने वाला. ऐसा करने के लिए, अपडेट करें AndroidManifest.xml मर्ज नियम tools:node="remove" का इस्तेमाल करें.

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" />

मेनिफ़ेस्ट में मर्ज करने के नियमों का इस्तेमाल करने के बारे में ज़्यादा जानने के लिए, यह दस्तावेज़ देखें कई मेनिफ़ेस्ट फ़ाइलों को मर्ज करके.

कॉन्फ़िगरेशन.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();
    }
}

WorkManager 2.1.0 से पहले, पसंद के मुताबिक शुरू करना

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() देखें.