في التطوير ، في بعض الأحيان نحتاج إلى أداء مهمة معينة في فترة زمنية محددة. على سبيل المثال ، تحتاج عناصر التحكم في واجهة المستخدم إلى التغيير بمرور الوقت ، يمكننا استخدام فئات الأدوات من أجهزة ضبط الوقت التي توفرها Java ، وهي Timer و TimerTask.
المؤقت هو فئة عادية مع عدة طرق مهمة ؛ TimerTask هي فئة مجردة ذات طريقة تجريدية Run () ، على غرار طريقة Run () في مؤشر ترابط. نستخدم Timer لإنشاء كائن ، ثم نستخدم طريقة الجدول عن هذا الكائن لإكمال عملية الفاصل الزمني هذه.
تحتوي طريقة الجدول على ثلاث معلمات
المعلمة الأولى هي كائن من نوع timertask. طريقة Run () لتنفيذ TimerTask هي مهمة يجب تنفيذها بشكل دوري ؛
هناك نوعان من المعلمة الثانية. الأول هو النوع الطويل ، والذي يشير إلى المدة التي يستغرقها بدء التنفيذ ، والآخر هو نوع التاريخ ، مما يشير إلى أنه يبدأ التنفيذ بعد ذلك الوقت ؛
المعلمة الثالثة هي دورة التنفيذ ، والتي هي من النوع الطويل.
تحتوي طريقة الجدول أيضًا على تحميل تنفيذ معلمة ثنائية المعلمة. المعلمة الأولى لا تزال timertask ، والنموذج الثاني الممثل منذ فترة طويلة يشير إلى المدة التي سيتم تنفيذها بعد تنفيذها. بالنسبة للتاريخ ، فهذا يعني أنه سيتم تنفيذه بعد وقت معين.
المؤقت هو مؤشر ترابط ، يستخدم طريقة الجدول لإكمال جدولة TimerTask. يمكن أن تشترك عمليات التوقيت المتعددة في مؤقت. وهذا يعني أن كائن المؤقت يستدعي طريقة الجدول مرة واحدة ، والتي تنشئ مؤشر ترابط. بعد الاتصال بالجدول الزمني مرة واحدة ، ستحلق TimerTask بشكل غير محدد ، واستخدام Timer's Cancel () لإيقاف العملية. بالطبع ، بعد تنفيذ نفس المؤقت طريقة الإلغاء () مرة واحدة ، يتم إنهاء جميع مؤشرات الترابط الموقت.
الاستخدام:
. 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 من الطبقة العامة النشاط {private timer mtimer ؛ Override محمية void onCreate (backdle SaveInstancestate) {super.oncreate (SaveInstancestate) ؛ // init timer mtimer = new timer () ؛ // بدء Timer Task SetTimerTask () ؛ } override محمية void ondestroy () {super.ondestroy () ؛ // إلغاء توقيت mtimer.cancel () ؛ } private void setTimerTask () {mtimer.schedule (New TimerTask () {Override public void run () {message message = new message () ؛ message. what = 1 ؛ doActionHandler.SendMessage (message) ؛} ، 1000 ، 1000/* تعني أنه بعد 1000 milliseconds ، خط 1000 milliseconds*) ؛ } / ** * القيام ببعض الإجراءات * / المعالج الخاص doActionHandler = New Handler () {Override public void handlemessage (message msg) {super.handlemessage (msg) ؛ int msgid = msg. what ؛ Switch (msgid) {case 1: // قم ببعض الإجراءات ؛ الافتراضي: استراحة ؛ }}} ؛ }ما سبق هو كل محتوى هذه المقالة. آمل أن يكون ذلك مفيدًا لتعلم الجميع وآمل أن يدعم الجميع wulin.com أكثر.