ในการพัฒนาบางครั้งเรามีความจำเป็นที่จะต้องทำงานบางอย่างในช่วงเวลาที่กำหนด ตัวอย่างเช่นการควบคุม UI จำเป็นต้องเปลี่ยนแปลงตลอดเวลาเราสามารถใช้คลาสเครื่องมือของตัวจับเวลาที่จัดทำโดย Java คือตัวจับเวลาและ Timertask
ตัวจับเวลาเป็นคลาสธรรมดาที่มีวิธีการสำคัญหลายประการ Timertask เป็นคลาสนามธรรมที่มีวิธีนามธรรม Run () คล้ายกับวิธี Run () ในเธรด เราใช้ตัวจับเวลาเพื่อสร้างวัตถุจากนั้นใช้วิธีการกำหนดเวลาของวัตถุนี้เพื่อดำเนินการตามช่วงเวลานี้ให้เสร็จสมบูรณ์
วิธีกำหนดเวลามีสามพารามิเตอร์
พารามิเตอร์แรกเป็นวัตถุของ Type Timertask วิธีการเรียกใช้ () ในการใช้ TimerTask เป็นงานที่ต้องดำเนินการเป็นระยะ
พารามิเตอร์ที่สองมีสองประเภท ครั้งแรกคือประเภทยาวซึ่งระบุว่าต้องใช้เวลานานแค่ไหนในการเริ่มต้นการดำเนินการและอีกประเภทหนึ่งคือประเภทวันที่ซึ่งบ่งชี้ว่ามันเริ่มดำเนินการหลังจากเวลานั้น
พารามิเตอร์ที่สามคือวงจรการดำเนินการซึ่งเป็นประเภทยาว
วิธีการกำหนดเวลายังมีการดำเนินการสองพารามิเตอร์โอเวอร์โหลด พารามิเตอร์แรกยังคงเป็น timertask และรูปแบบที่สองแสดงนานเท่าไหร่จะระบุระยะเวลาที่จะดำเนินการหลังจากดำเนินการ สำหรับวันที่หมายความว่ามันจะถูกดำเนินการหลังจากผ่านไประยะเวลาหนึ่ง
Timer เป็นเธรดซึ่งใช้วิธีการกำหนดเวลาเพื่อกำหนดตารางเวลาของ Timertask ให้เสร็จสมบูรณ์ Timertasks หลายตัวสามารถแชร์ตัวจับเวลาได้ กล่าวคือวัตถุจับเวลาเรียกใช้วิธีกำหนดเวลาหนึ่งครั้งซึ่งสร้างเธรด หลังจากโทรหาตารางเวลาหนึ่งครั้ง Timertask จะวนรอบอย่างไม่ จำกัด และใช้การยกเลิก () ของ Timer เพื่อหยุดการดำเนินการ แน่นอนหลังจากตัวจับเวลาเดียวกันจะดำเนินการวิธีการยกเลิก () หนึ่งครั้งเธรดตัวจับเวลาทั้งหมดจะถูกยกเลิก
การใช้งาน:
// จริงหมายความว่าตัวจับเวลานี้ทำงานในโหมด daemon (ลำดับความสำคัญต่ำตัวจับเวลาจะสิ้นสุดโปรแกรมและสิ้นสุดโดยอัตโนมัติ) java.util.timer timer = new Java.util.timer (จริง); timertask task = new timertask () {public void run () {// ใส่รหัสที่ต้องดำเนินการทุกครั้งที่อยู่ที่นี่ - // ต่อไปนี้เป็นวิธีการหลายวิธีสำหรับงานการจัดตารางเวลา: // เวลาคือวันที่วันที่: ดำเนินการหนึ่งครั้งในเวลาที่กำหนด timer.schedule (งานเวลา); // ครั้งแรกคือประเภทวันที่ระยะเวลายาวแสดงว่าจะดำเนินการทุกมิลลิวินาทีตั้งแต่ครั้งแรก timer.schedule (งาน, ครั้งแรก, ระยะเวลา); // การหน่วงเวลาคือความยาวประเภท: ความล่าช้าจะดำเนินการทุกมิลลิวินาทีจากนี้เป็นต้นไป timer.schedule (งานล่าช้า); // การหน่วงเวลานานระยะเวลายาวนาน: หลังจากมิลลิวินาทีล่าช้าจะถูกส่งผ่านจากนี้ให้ดำเนินการทุกมิลลิวินาที timer.schedule (งานล่าช้าระยะเวลา); รหัสตัวอย่าง:
นำเข้า Android.app.activity; นำเข้า Android.os.bundle; นำเข้า Android.os.handler; นำเข้า Android.os.message; นำเข้า java.util.timer; นำเข้า java.util.timertask; TimerTaskactivity ระดับสาธารณะขยายกิจกรรม {ตัวจับเวลาส่วนตัว mtimer; @Override ป้องกันโมฆะ onCreate (Bundle SavedInstancestate) {super.oncreate (savedinstancestate); // ตัวจับเวลาเริ่มต้น mtimer = ตัวจับเวลาใหม่ (); // เริ่มงาน Timer Task SettimerTask (); } @Override void ondestroy () {super.ondestroy (); // ยกเลิกตัวจับเวลา mtimer.cancel (); } โมฆะส่วนตัว setTimerTask () {mtimer.schedule (ใหม่ timertask () {@Override โมฆะสาธารณะเรียกใช้ () {ข้อความข้อความ = ข้อความใหม่ (); ข้อความ = 1; doactionler.sendmessage (ข้อความ);}}, 1,000, 1000/* } / ** * ทำบางอย่าง * / ตัวจัดการส่วนตัว doactionHandler = ใหม่ handler () {@Override โมฆะสาธารณะ handleMessage (ข้อความข้อความ) {super.handleMessage (msg); int msgid = msg.what; สวิตช์ (msgid) {กรณีที่ 1: // ทำแอ็คชั่นเบรค; ค่าเริ่มต้น: break; - -ข้างต้นเป็นเนื้อหาทั้งหมดของบทความนี้ ฉันหวังว่ามันจะเป็นประโยชน์ต่อการเรียนรู้ของทุกคนและฉันหวังว่าทุกคนจะสนับสนุน wulin.com มากขึ้น