20.11.2016 Views

ANDROID APP

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

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

วงจรการทำางานของแอคทิวิตี้<br />

@Override<br />

protected void onPause() {<br />

Toast.makeText(this, "onPause", Toast.LENGTH_SHORT).show();<br />

super.onPause();<br />

}<br />

33<br />

@Override<br />

protected void onStop() {<br />

Toast.makeText(this, "onStop", Toast.LENGTH_SHORT).show();<br />

super.onStop();<br />

}<br />

}<br />

@Override<br />

protected void onDestroy() {<br />

Toast.makeText(this, "onDestroy", Toast.LENGTH_SHORT).show();<br />

super.onDestroy();<br />

}<br />

จะเห็นได้ว่าการทำงานต่างๆ ที่ได้รับการสั่งการจากผู้ใช้นั้นจะส่งผลให้สถานะของแอคทิวิตี้<br />

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

ควบคุมสถานะต่างๆ ของแอคทิวิตี้กัน<br />

กรรมวิธี: การทำงานแบบซิงเกิลทาสก์ (Single Task)<br />

การทำงานของแอพโดยทั่วไปจะป้องกันการเรียกใช้งานแอพซ้ำในขณะที่แอพนั้นทำงานอยู่แล้ว<br />

ซึ่งการป้องกันเช่นนี้จะช่วยหลีกเลี่ยงการสร้างอินสแตนซ์ของ Activity ขึ้นมาซ้ำกันเพื่อลดปริมาณการ<br />

ใช้หน่วยความจำที่ซ้ำซ้อน เราสามารถควบคุมลักษณะการทำงานของแอพเหล่านี้ได้ด้วยการกำหนดค่า<br />

ของ AndroidManifest<br />

เพื่อให้แน่ใจว่าอินสแตนซ์ที่สร้างขึ้นนั้นเป็นอินสแตนซ์ที่ทำงานเพียงอินสแตนซ์เดียว ไม่สามารถ<br />

เรียกซ้ำๆ ได้ เราจะต้องกำหนดค่าดังนี้<br />

android:launchMode=”singleInstance”<br />

โค้ดข้างบนนี้จะสั่งให้อินสแตนซ์ทำงานในลักษณะอินสแตนซ์หรือซิงเกิลอินสแตนซ์ และเพื่อให้<br />

แน่ใจว่างานหรือทาสก์ที่ถูกสร้างขึ้นนั้นทำงานแบบซิงเกิลทาสก์ ก็ให้กำหนดค่าดังนี้<br />

android:launchMode=”singleTask”<br />

โค้ดนี้เป็นการอนุญาตให้แอคทิวิตี้แชร์ข้อมูลกันได้อย่างง่ายดายในฐานะที่เป็นงานเดียวกัน<br />

นอกจากนี้ถ้าคุณปิดและเปิดแอพขึ้นใหม่ สถานะต่างๆ ของแอคทิวิตี้จะถูกเริ่มต้นใหม่ทั้งหมด<br />

ถ้าคุณต้องการให้แอพมีการจดจำสถานะล่าสุดของแอคทิวิตี้ในกรณีที่มีการเปิดปิดแอพละก็ ให้กำหนด<br />

ค่าดังนี้<br />

android:alwaysRetainTaskState=”true”

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

Saved successfully!

Ooh no, something went wrong!