برنامه نویسی اندروید

اموزش برنامه نویسی اندروید تخصصی

برنامه نویسی اندروید

اموزش برنامه نویسی اندروید تخصصی

اجرای یک سری کد، به صورت چندین بار و با فواصل زمانی منظم و یک زمان نهایی برای پایان، با روش onTick از کلاس CountDownTimer ، در برنامه نویسی اندروید

کلاس CountDownTimer ، این قابلیت را هم دارد که در آن تعیین کنیم که یک سری کد، در فاصله های زمانی مشخص، اجرا شوند، البته تا وقتی که زمان تعیین شده به عنوان زمان پایان، فرا رسد.

برای این منظور، این بار باید از روش onTick موجود در کلاس CountDownTimer استفاده کنیم.

به عنوان مثال :

 
new CountDownTimer(17000,4000){
    @Override
    public void onTick(long millisUntilFinished){
        // your code
    } 
    @Override
    public void onFinish(){}
}.start();

که در آن، به جای عبارت // your code باید کدهای مورد نظر خود را بنویسید.

دو عدد را برای کلاس CountDownTimer ذکر کرده ایم، یکی عدد 17000 میلی ثانیه (17 ثانیه) که زمان پایان را مشخص می کند و دیگری عدد 4000 میلی ثانیه (4 ثانیه) که بازه زمانی بین تکرار شدن اجرای کدها را مشخص کرده است.

بنابراین زمان پایان برابر 17000 میلی ثانیه (17 ثانیه) تعیین شده است و کدهای تعیین شده برای روش onTick هم تا قبل از فرا رسیدن زمان پایان، هر 4000 میلی ثانیه (4 ثانیه) یک بار، اجرا خواهند شد.

یک مثال کامل :

 
new CountDownTimer(17000,4000){
    @Override
    public void onTick(long millisUntilFinished){
        Toast.makeText(getApplicationContext(), "kelidestan.com", Toast.LENGTH_SHORT).show();
    }
    @Override
    public void onFinish(){}
}.start();

بنابراین کد زیر 4 بار اجرا خواهد شد (با فاصله زمانی 4 ثانیه) :

 
Toast.makeText(getApplicationContext(), "kelidestan.com", Toast.LENGTH_SHORT).show();

کلاس Toast برای نمایش یک پیام به مدت چند ثانیه، به کار می رود . کد بالا باعث نمایش عبارت kelidestan.com به مدت چند ثانیه می شود.

نکته

در متغیر millisUntilFinished ، مقدار زمان باقیمانده تا زمان پایان بر اساس میلی ثانیه، ذخیره می شود. برای درک بهتر این موضوع، کدهای زیر را اجرا نمایید :

 
new CountDownTimer(13000,4000){
    @Override
    public void onTick(long millisUntilFinished){
        String str = "seconds remaining: " + millisUntilFinished / 1000;
        Toast.makeText(getApplicationContext(), str, Toast.LENGTH_SHORT).show();
    } 
    @Override
    public void onFinish(){}
}.start();

بنابراین پیام های زیر با فاصله های 4 ثانیه ای، نمایش داده می شوند :

 
seconds remaining: 12
 
seconds remaining: 8
 
seconds remaining: 4
نکته

بنده بر اساس تجربه متوجه شدم که این روش، کاملا دقیق نیست (البته اگر زمان در حد میلی ثانیه برای شما مهم باشد). به عنوان مثال، اگر کد زیر را چندین بار اجرا کنید، اعداد میلی ثانیه مربوط به زمان، در اجراهای مختلف، متفاوت خواهند بود :

 
new CountDownTimer(13000,4000){
    @Override
    public void onTick(long millisUntilFinished){
        String str = "milliseconds remaining: " + millisUntilFinished;
        Toast.makeText(getApplicationContext(), str, Toast.LENGTH_SHORT).show();
    } 
    @Override
    public void onFinish(){}
}.start();
  • vahid hasani

نظرات  (۰)

هیچ نظری هنوز ثبت نشده است

ارسال نظر

ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
شما میتوانید از این تگهای html استفاده کنید:
<b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">
تجدید کد امنیتی