บทเรียนก่อนหน้านี้ได้แสดงให้คุณเห็นถึงวิธีการสร้าง
JobIntentService
ช่วงเวลานี้
บทเรียนจะแสดงวิธีทริกเกอร์
JobIntentService
เพื่อเรียกใช้การดำเนินการโดย
การจัดคิวงานด้วย Intent
Intent
นี้สามารถ
อาจมีข้อมูลสำหรับ
JobIntentService
เพื่อประมวลผล
สร้างและส่งคำของานไปยัง JobIntentService
หากต้องการสร้างคําของานและส่งไปยัง
JobIntentService
สร้าง Intent
และจัดคิวให้
จะถูกเรียกใช้โดยการเรียกใช้
enqueueWork()
หรือคุณจะเพิ่มข้อมูลไปยัง Intent (ในรูปแบบของ Intent เพิ่มเติม) สำหรับ
JobIntentService เพื่อประมวลผล สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการสร้างความตั้งใจ โปรดอ่าน
ส่วน Intent ในตัวกรอง Intent และ Intent
ข้อมูลโค้ดต่อไปนี้จะแสดงกระบวนการนี้
-
สร้าง
Intent
ใหม่สำหรับJobIntentService
โทรหาRSSPullService
Kotlin
/* * Creates a new Intent to start the RSSPullService * JobIntentService. Passes a URI in the * Intent's "data" field. */ serviceIntent = Intent().apply { putExtra("download_url", dataUrl) }
Java
/* * Creates a new Intent to start the RSSPullService * JobIntentService. Passes a URI in the * Intent's "data" field. */ serviceIntent = new Intent(); serviceIntent.putExtra("download_url", dataUrl));
-
โทร
enqueueWork()
Kotlin
private const val RSS_JOB_ID = 1000 RSSPullService.enqueueWork(context, RSSPullService::class.java, RSS_JOB_ID, serviceIntent)
Java
// Starts the JobIntentService private static final int RSS_JOB_ID = 1000; RSSPullService.enqueueWork(getContext(), RSSPullService.class, RSS_JOB_ID, serviceIntent);
โปรดทราบว่าคุณส่งคำของานได้จากทุกที่ในกิจกรรมหรือ Fragment ตัวอย่างเช่น หากต้องการข้อมูลจากผู้ใช้ก่อน คุณสามารถส่งคำขอจาก Callback ได้ ที่ตอบสนองต่อการคลิกปุ่มหรือท่าทางสัมผัสที่คล้ายกัน
เมื่อคุณโทรติดต่อ
enqueueWork()
,
JobIntentService
ทำงานที่ระบุไว้ใน
onHandleWork()
จากนั้นจะหยุดตัวเอง
ขั้นตอนถัดไปคือการรายงานผลลัพธ์ของคำของานกลับไปยังกิจกรรมที่ต้นทาง
หรือส่วนย่อย บทเรียนถัดไปจะแสดงวิธีทำด้วย
BroadcastReceiver