Android AlarmManager

Simple Example in Java  ·  Android Studio  ·  Beginner Tutorial

AlarmManager Java BroadcastReceiver PendingIntent Android Studio Beginner
1   Main Activity
MainActivity.java
package com.example.alarmapp;

import android.app.AlarmManager;
import android.app.PendingIntent;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;
import androidx.appcompat.app.AppCompatActivity;

public class MainActivity extends AppCompatActivity {

    Button btnSetAlarm;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        btnSetAlarm = findViewById(R.id.btnSetAlarm);

        btnSetAlarm.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                // Intent for BroadcastReceiver
                Intent intent = new Intent(MainActivity.this, AlarmReceiver.class);
                PendingIntent pendingIntent = PendingIntent.getBroadcast(
                        MainActivity.this,
                        0,
                        intent,
                        PendingIntent.FLAG_IMMUTABLE
                );

                // Alarm Manager
                AlarmManager alarmManager =
                    (AlarmManager) getSystemService(ALARM_SERVICE);

                // Set alarm after 5 seconds
                long triggerTime = System.currentTimeMillis() + 5000;

                alarmManager.set(
                    AlarmManager.RTC_WAKEUP,
                    triggerTime,
                    pendingIntent
                );

                Toast.makeText(MainActivity.this,
                    "Alarm Set!", Toast.LENGTH_SHORT).show();
            }
        });
    }
}
2   Broadcast Receiver
AlarmReceiver.java
package com.example.alarmapp;

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.widget.Toast;

public class AlarmReceiver extends BroadcastReceiver {

    @Override
    public void onReceive(Context context, Intent intent) {
        Toast.makeText(context,
            "Alarm Triggered!", Toast.LENGTH_LONG).show();
    }
}
3   Layout XML
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:layout_height="match_parent"
    android:gravity="center"
    android:orientation="vertical">

    <Button
        android:id="@+id/btnSetAlarm"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Set Alarm"/>

</LinearLayout>
4   Manifest Registration
AndroidManifest.xml  — inside <application> tag
<receiver android:name=".AlarmReceiver"/>
📝 Note: Add the <receiver> tag inside the <application> block of your AndroidManifest.xml so Android can route the broadcast to AlarmReceiver when the alarm fires.