20.11.2016 Views

Android App Development ฉบับสมบูรณ์

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

• Broadcast and Intent Receiver คือ การตอบสนอง ซึ่งโดยปกติแล้ว Broadcast Receiver<br />

จะเป็นการตอบสนองต่อการเกิดอีเวนต์ของระบบในวงกว้าง เช่น การประกาศเตือนว่าแบตเตอรี่<br />

ใกล้จะหมดแล้ว เป็นต้น นอกจากนี้ Intent Receiver เป็นส่วนทำให้แอพพลิเคชันอื่นๆ เข้าถึงการ<br />

ทำงานของ Activity และ Service ซึ่งในการปฏิบัติงานแต่ละอย่างเป็นการตอบสนองการร้องขอ<br />

จากข้อมูลหรือบริการของ Activity อื่นๆ<br />

• Content Provider คือ ส่วนของการให้บริการข้อมูลสำหรับแต่ละแอพพลิเคชัน ทั้งนี้ข้อมูล<br />

สามารถเก็บอยู่ในรูปแบบของระบบไฟล์ หรือฐานข้อมูลก็ได้ เช่น Google สามารถเข้าใช้งาน<br />

ข้อมูลร่วมกันกับผู้ใช้งานได้ในแอพพลิเคชันที่ต้องการข้อมูลของผู้ใช้งาน<br />

การอนุญาตให้การเข้าใช้งานในแต่ละส่วนประกอบของแอพพลิเคชัน (Activating Component) หรือ<br />

Intent คือ วิธีที่อธิบาย Action ต่างๆ เช่น การเลือกรูปภาพ การเปิดโปรแกรมฟังเพลง โดยทั่วไปแล้ว<br />

Intent จะถูกใช้สำหรับการสร้างแอพพลิเคชันใหม่จากแอพพลิเคชันเดิม โดยที่นักพัฒนาไม่จ ำเป็นต้องสร้าง<br />

ใหม่ทั้งหมด (Mobile Mashup) ซึ่ง Intent อนุญาตให้นักพัฒนาสามารถติดต่อระหว่างแอพพลิเคชันและ<br />

บริการที่แตกต่างกันได้<br />

โดยปกติแล้วในแต่ละแอพพลิเคชันจะทำงานแยกกันในแต่ละโพรเซส (Process) ซึ่งมีการทำงานที่<br />

แยกจากกันโดยชัดเจน ในกรณีที่นักพัฒนาต้องการเข้าถึงการทำงานหรือการขอสิทธิ์เข้าใช้นั้น นักพัฒนา<br />

จะต้องกำหนดการขอเข้าใช้ที่ไฟล์ <strong>Android</strong>Manifest.xml เช่น<br />

• INTERNET เป็นการอนุญาตให้เข้าใช้อินเทอร์เน็ต<br />

• READ_CONTACTS เป็นการอนุญาตให้อ่านข้อมูลผู้ใช้<br />

• WRITE_CONTACTS เป็นการอนุญาตให้เขียนข้อมูลผู้ใช้<br />

• RECEIVE_SMS เป็นการอนุญาตให้ตรวจสอบการรับ SMS (Short Message Service)<br />

• ACCESS_COARSE_LOCATION เป็นการอนุญาตให้ใช้การอ้างอิงต ำแหน่งแบบคร่าวๆ (Coarse)<br />

• ACCESS_FINE_LOCATION เป็นการอนุญาตให้ใช้การอ้างอิงต ำแหน่งที่มีความถูกต้องสูง (Fine)<br />

เช่น GPS<br />

วงรอบชีวิตของแอพพลิเคชัน (<strong>App</strong>lication Life<br />

Cycle)<br />

โดยปกติแล้วแอพพลิเคชันจะทำงานแยกกันในแต่ละโพรเซส และในแต่ละโพรเซสอาจจะมี Activity/<br />

Service ที่ทำงานอยู่มากกว่า 1 Activity/Service ดังนั้น ในแต่ละแอพพลิเคชันอาจจะมีมากกว่า 1 Activity ซึ่ง<br />

ในการเริ่มทำงานของ Activity จะเริ่มด้วย startActivity() สำหรับแบบซิงโครนัส (Synchronous) และจะเริ่ม<br />

ด้วย startSubActivity() สำหรับแบบอะซิงโครนัส (Asynchronous) โดยในแต่ละ Activity จะมีวงรอบชีวิต (Life<br />

Cycle) ที่แยกจากกันโดยชัดเจน ซึ่งมีสถานะการทำงานหลักดังนี้<br />

10<br />

<strong>Android</strong> <strong>App</strong> <strong>Development</strong> <strong>ฉบับสมบูรณ์</strong>

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!