How to make a countdown timer in Android?


Before getting into an example, we should know what is a countdown timer in android. Count down timer as simple as we see in watches and mobile phones. we can set count down time after completion of time it will stop and get 0 values.

There are four methods are available to use countdown timer as shown below -

onTick(long millisUntilFinished ) - In this method we have to pass countdown mill seconds after done countdown it will stop Ticking.

onFinish() - After finish ticking, if you want to call any methods or callbacks we can do in onFinish().

start() - It is used to call countdown timer.

cancel() - It is used to cancel countdown timer.

This example demonstrates how to integrate countdown timer with textview.

Step 1 − Create a new project in Android Studio, go to File ⇒ New Project and fill all required details to create a new project.

Step 2 − Add the following code to res/layout/activity_main.xml.

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
   android:layout_width="match_parent"
   android:id="@+id/layout"
   android:gravity="center"
   android:layout_height="match_parent"
   android:orientation="vertical">
   <TextView
      android:id="@+id/counttime"
      android:layout_width="match_parent"
      android:gravity="center"
      android:textSize="30sp"
      android:layout_height="wrap_content" />
</LinearLayout>

In the above code, we have declared a text view. it going to print countdown timer.

Step 3 − Add the following code to src/MainActivity.java

package com.example.andy.myapplication;
import android.annotation.TargetApi;
import android.os.Build;
import android.os.Bundle;
import android.os.CountDownTimer;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import android.widget.RatingBar;
import android.widget.TextView;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity {
   public int counter;
   @TargetApi(Build.VERSION_CODES.O)
   @Override
   protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_main);
      final TextView counttime=findViewById(R.id.counttime);
      new CountDownTimer(50000,1000) {
         @Override
         public void onTick(long millisUntilFinished) {
            counttime.setText(String.valueOf(counter));
            counter++;
         }
         @Override
         public void onFinish() {
            counttime.setText("Finished");
         }
      }.start();
   }
}

In the above code, we have declare 50s and time interval is 1s. It going to print ms time in textview as shown onTick method and after done time intervals it will print the result as "Finished".

Step 4 − No need to change manifest.xml

Let's try to run your application. I assume you have connected your actual Android Mobile device with your computer. To run the app from an android studio, open one of your project's activity files and click Run Icon  from the toolbar. Select your mobile device as an option and then check your mobile device which will display your default screen −

In the above screen, it shows time counting points. After done counting time means 50 sec it will show the result as shown below-

Click here to download the project code

Updated on: 30-Jul-2019

3K+ Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements