บทเรียนก่อนหน้านี้แสดงวิธีสร้างชั้นเรียน 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);
โปรดทราบว่าคุณสามารถส่งคำของานได้จากทุกที่ในกิจกรรมหรือข้อมูล เช่น หากต้องรับข้อมูลจากผู้ใช้ก่อน คุณอาจส่งคำขอจาก Callback ที่ตอบสนองต่อการคลิกปุ่มหรือท่าทางสัมผัสที่คล้ายกัน
เมื่อคุณเรียกใช้
enqueueWork()
JobIntentService
จะทำงานที่กำหนดไว้ในเมธอด
onHandleWork()
แล้วหยุดตัวเอง
ขั้นตอนถัดไปคือการรายงานผลลัพธ์ของคำของานกลับไปยังกิจกรรมหรือส่วนย่อยที่เริ่มต้น บทเรียนถัดไปจะแสดงวิธีดำเนินการด้วย BroadcastReceiver