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”