فیلم آموزش تایمر Timer اندروید استودیو
آموزش اندروید استودیو ایجاد کردن تایمر timer
تایمر Timer ، عرض سلام خدمت کاربران محترم سایت خانه اندروید با یکی دیگر از آموزش اندروید استودیو در خدمت شما عزیزان هستیم .توی این آموزش می خواهیم ایجاد کردن یک تایمر timer رو خدمتون آموزش بدیم.مثالی که میشه برای این مورد مطرح کرد timer تلگرام که وقتی شما شماره همراه خودتان را وارد می کنید برای فعال سازی حساب کاربری اگر کمی دقت کنیم تایمری درحال شماره هست و این مفهوم رو به کاربر میرسونه که باید ۴ دقیقه منتظر بمونه تا اس ام اس فعال سازی ارسال بشه.
حتما بخوانید آموزش های پیشنهادی :
دریافت اطلاعات از سمت سرور ذخیره در دیتابیس Sqlite اندروید استودیو
فیلم آموزش اشتراک گذاری اندروید استودیو
فیلم آموزش استفاده از Fragment و عمل Toast اندروید استودیو
شروع آموزش ایجاد کردن تایمر اندروید استودیو :
لطفا پروژه جدیدی را در اندروید استودیو ایجاد کنید سپس در بخش xml یک Textview و Button رو قرار بدین.
سورس کد xml :
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="application.homeandroid.com.homeandroid.timer_activity"> <TextView android:id="@+id/txt_timer" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_centerHorizontal="true" android:textSize="25sp" android:textAlignment="center" android:layout_centerVertical="true"/> <Button android:id="@+id/btn_send_sms" android:layout_width="match_parent" android:layout_height="wrap_content" android:textSize="18dp" android:text="ارسال مجدد اس ام اس " android:padding="10dp" android:textAlignment="center" android:layout_below="@+id/txt_timer"/> </RelativeLayout>
پس از اینکه اکتیویتی قسمت دیزاین را ایجاد کرده ایم حالا میرم سراغ قسمت کد نویسی جاوا :
import android.support.v4.content.ContextCompat; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.TextView; import android.widget.Toast; import java.util.Locale; import java.util.Timer; import java.util.TimerTask; public class timer_activity extends AppCompatActivity { TextView txt_timer; Button btn_send_sms; Timer timer; long timercount; int check; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_timer); txt_timer= (TextView) findViewById(R.id.txt_timer); btn_send_sms= (Button) findViewById(R.id.btn_send_sms); gettime(); btn_send_sms.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { if(check==1) { } else { Toast.makeText(timer_activity.this, "لطفا تا ۴ دقیقه منتظر بمانید...", Toast.LENGTH_SHORT).show(); } } }); } void gettime() { timercount=10000; timer=new Timer(); timer.schedule(new TimerTask() { @Override public void run() { runOnUiThread(new Runnable() { @Override public void run() { timercount-=1000; txt_timer.setText(gettimergn(timercount)); if(timercount==0) { timer.cancel(); txt_timer.setText("00 : 00 "); txt_timer.setTextColor(ContextCompat.getColor(getApplicationContext(),R.color.read)); check=1; } } }); } },۰,۱۰۰۰); } public String gettimergn(long timercount) { long secound=(timercount/1000); long mint=secound/60; secound %=60; return String.format(Locale.ENGLISH,"%02d",mint)+" : "+String.format(Locale.ENGLISH,"%02d",secound); } }
لطفا فیلم آموزشی را جهت توضیحات بیشتر ببنید.
با سلام و خسته نباشید.
یه سوال داشتم ممنون می شم جواب بدید.
تایمری توی اکتیویی شماره ۱ دارم که هر چند ثانیه یک بار داره فعالیتی رو تکرار میکنه.
توی همون اکتیویتی روی دکمه ای میزنم و به اکتیویی شماره ۲ می رم.
منتها می خوام تا اکتیویی شماره ۲بازه تایمر توی اکتیویتی شماره ۱ غیرفعال بشه و در صورتی که اکتیویتی شماره ۲ بسته بشه و اکتیویتی ۱ ظاهر بشه دوباره تایمر فعال بشه.
من اومدم توی رویداد onStop اکتیویتی ۱ تایمر رو کنسل کردم ولی مشکل اینه که نمی دونم با ظاهر شدن اکتیویتی ۱ متلا توی رویداد onResume چطوری تایمر رو دوباره فعال کنم.
لطفا راهنماییم کنید.
ممنون.
سلام لطفا در تلگرام در این خصوص پیام ارسال کنید
سلام مرسی از آموزش خوبتون خسته نباشید.
فقط یه سوال اگه بخوایم ساعت رو هم حساب کنیم چجوری میشه؟
اینو زدم اوکی شد گذاستم برای بقیه دوستان ک استفاده کنن
public String gettimergn(long timercount)
{
long secound=(timercount/1000);
long mint=secound/60;
mint%=60;
long hour=secound/3600;
secound %=60;
return String.format(Locale.ENGLISH,”%02d”,hour)+” : “+String.format(Locale.ENGLISH,”%02d”,mint)+” : “+String.format(Locale.ENGLISH,”%02d”,secound);
}
با تشکر از شما
موفق باشین.