มันขึ้นอยู่กับว่าคุณต้องการซิงค์ชนิดใด
เป็นระยะ
หากแอปของคุณเป็นแอปข่าวที่เผยแพร่โพสต์ในบางช่วงเวลาทุกวัน (ให้บอกเวลา 7.45 น. ทุกวัน) แสดงว่าคุณทำงานเป็นระยะในบริการแบ็คกราวน์พูดตอน 8 โมงเช้า
เช่น Drippler พวกเขาแจ้งฉันทุกวัน (ประมาณ 18.30 น.) ฉันเชื่อว่าพวกเขาใช้งานเป็นระยะ
เหตุการณ์ถูกเรียก
หากการถ่ายโอนข้อมูลของคุณถูกกระตุ้นโดยการกระทำของผู้ใช้ให้ใช้บริการพื้นหลังหรือ AsyncTask สำหรับการถ่ายโอนข้อมูล
เช่น DropBox / Evernote พวกเขาซิงค์เมื่อฉันโต้ตอบกับแอพ
ทันทีทันใด
หากแอปของคุณรันการส่งข้อความทันที / อีเมล / การอัปเดตที่สำคัญเป็นระยะ ๆคุณต้องมีการแจ้งเตือนแบบพุชเพราะคุณต้องการเตือนผู้ใช้ทันที ใช้ GCM หรือแยกวิเคราะห์สำหรับกรณีนี้ เช่น: WhatsApp / Google chat เนื่องจากคุณพูดอย่างชัดเจนว่าคุณไม่ต้องการใช้ GCM ฉันจะบอกว่าทำไมคุณควรใช้ผู้ให้บริการแจ้งเตือนแบบพุชแบบมาตรฐานแทนการเขียนของคุณเอง:
การแจ้งเตือนแบบพุชใช้งานได้ทันที - มีความล่าช้าเล็กน้อย (ตามลำดับวินาทีไม่กี่นาที) หากคุณต้องใช้โซลูชัน / ไลบรารีของคุณเองสำหรับการทำสิ่งนี้ - ในรูปแบบไร้เดียงสาคุณจะ ping เซิร์ฟเวอร์ทุกวินาทีหรือ 5 วินาทีหรือหนึ่งนาทีเพื่อตรวจสอบสถานะ สิ่งนี้ไม่มีประสิทธิภาพมากเนื่องจากใช้ CPU (และด้วยแบตเตอรี่) แบนด์วิดท์บนมือถือและโหลดบนเซิร์ฟเวอร์ของคุณ อย่างไรก็ตามใน GCM / Parse พวกเขาจะเปิดพอร์ตเสมอกับเซิร์ฟเวอร์ (ดูที่นี่ ) นี่คือวิธีมาตรฐานและมีประสิทธิภาพมากที่สุด นอกจากนี้หากแอป 10 แห่งใช้ GCM คุณไม่จำเป็นต้องมีการเชื่อมต่อแบบเปิด 10 รายการคุณจะต้องใช้เพียงหนึ่งเครื่องต่อหนึ่งอุปกรณ์ และคุณไม่ต้องการพัฒนาโซลูชันของคุณเองนอกเสียจากคุณจะมีเหตุผล / เงิน / เวลาที่ถูกต้อง
หมายเหตุเกี่ยวกับ Sync Adapter : Sync Adapter ทำงานได้ดีสำหรับทั้งสามกรณีข้างต้น ทำเครื่องหมายเรียกใช้ซิงค์อะแดปเตอร์แล้วคุณจะเห็นว่าขึ้นอยู่กับ GCM หรือกลไกของคุณเอง (ทริกเกอร์เหตุการณ์หรือโซลูชันที่กำหนดเอง) หรือความพร้อมเครือข่าย (ทริกเกอร์เหตุการณ์) หรือเหตุการณ์เป็นระยะ โดยรวมแล้วนี่เป็นคลาสที่สะดวกสบายสำหรับการซิงค์ข้อมูลโดยไม่ต้องทำรายการเริ่มต้นจำนวนมากทุกครั้งหรือใช้กรณีข้างต้นทั้งหมดในที่เดียว