โดยค่าเริ่มต้น WorkManager จะกำหนดค่าตัวเองโดยอัตโนมัติเมื่อแอปเริ่มทำงาน โดยใช้ตัวเลือกที่สมเหตุสมผล ซึ่งเหมาะกับแอปส่วนใหญ่ หากคุณต้องการเพิ่ม ควบคุมวิธีจัดการและกำหนดเวลาของ WorkManager โดยคุณสามารถปรับแต่ง กำหนดค่า WorkManager ด้วยการเริ่มต้น WorkManager ด้วยตนเอง
การเริ่มต้นแบบออนดีมานด์
การเริ่มต้นแบบออนดีมานด์ช่วยให้คุณสร้าง WorkManager ได้ก็ต่อเมื่อคอมโพเนนต์นั้นอยู่ที่ แทนทุกครั้งที่แอปเริ่มทำงาน การดำเนินการนี้จะเป็นการปิด WorkManager เส้นทางการเริ่มต้นใช้งานที่สำคัญของคุณ ซึ่งช่วยปรับปรุงประสิทธิภาพการเริ่มต้นแอป เพื่อใช้งานแบบออนดีมานด์ การเริ่มต้น:
นำค่าเริ่มต้นเริ่มต้นออก
หากต้องการกําหนดค่าของคุณเอง คุณต้องนําค่าเริ่มต้นออกก่อน
โปรแกรมเริ่มต้น ซึ่งทำได้โดยอัปเดต
AndroidManifest.xml
โดยใช้กฎการผสาน tools:node="remove"
ตั้งแต่ WorkManager 2.6 มีการใช้ 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" />
หากต้องการดูข้อมูลเพิ่มเติมเกี่ยวกับการใช้กฎการผสานในไฟล์ Manifest โปรดดูเอกสารเกี่ยวกับ ผสานไฟล์ Manifest หลายไฟล์
ใช้ 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(); } }
การเริ่มต้นที่กำหนดเองก่อน WorkManager 2.1.0
สำหรับ WorkManager เวอร์ชันก่อนเวอร์ชัน 2.1.0 จะมีการเริ่มต้น 2 แบบ ตัวเลือก ในกรณีส่วนใหญ่ พารามิเตอร์ การเริ่มต้นเริ่มต้น คือสิ่งที่คุณต้องการ หากต้องการควบคุม 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
Singleton ที่วิ่งใน
Application.onCreate()
หรือใน
ContentProvider.onCreate()
ดูรายการการกำหนดค่าทั้งหมดที่มีให้บริการที่
Configuration.Builder()
เอกสารอ้างอิง