
- Android Basics
- Android - Home
- Android - Overview
- Android - Environment Setup
- Android - Architecture
- Android - Application Components
- Android - Hello World Example
- Android - Resources
- Android - Activities
- Android - Services
- Android - Broadcast Receivers
- Android - Content Providers
- Android - Fragments
- Android - Intents/Filters
- Android - User Interface
- Android - UI Layouts
- Android - UI Controls
- Android - Event Handling
- Android - Styles and Themes
- Android - Custom Components
- Android Advanced Concepts
- Android - Drag and Drop
- Android - Notifications
- Location Based Services
- Android - Sending Email
- Android - Sending SMS
- Android - Phone Calls
- Publishing Android Application
- Android Useful Examples
- Android - Alert Dialoges
- Android - Animations
- Android - Audio Capture
- Android - AudioManager
- Android - Auto Complete
- Android - Best Practices
- Android - Bluetooth
- Android - Camera
- Android - Clipboard
- Android - Custom Fonts
- Android - Data Backup
- Android - Developer Tools
- Android - Emulator
- Android - Facebook Integration
- Android - Gestures
- Android - Google Maps
- Android - Image Effects
- Android - ImageSwitcher
- Android - Internal Storage
- Android - JetPlayer
- Android - JSON Parser
- Android - Linkedin Integration
- Android - Loading Spinner
- Android - Localization
- Android - Login Screen
- Android - MediaPlayer
- Android - Multitouch
- Android - Navigation
- Android - Network Connection
- Android - NFC Guide
- Android - PHP/MySQL
- Android - Progress Circle
- Android - ProgressBar
- Android - Push Notification
- Android - RenderScript
- Android - RSS Reader
- Android - Screen Cast
- Android - SDK Manager
- Android - Sensors
- Android - Session Management
- Android - Shared Preferences
- Android - SIP Protocol
- Android - Spelling Checker
- Android - SQLite Database
- Android - Support Library
- Android - Testing
- Android - Text to Speech
- Android - TextureView
- Android - Twitter Integration
- Android - UI Design
- Android - UI Patterns
- Android - UI Testing
- Android - WebView Layout
- Android - Wi-Fi
- Android - Widgets
- Android - XML Parsers
- Android Useful Resources
- Android - Questions and Answers
- Android - Useful Resources
- Android - Discussion
How to set an alert in Android to fire at given date and time?
This example demonstrates how to do I an alert in Android to fire at a given date and time in android.
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" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" tools:context=".MainActivity"> </LinearLayout>
Step 3 − Add the following code to src/MainActivity.java
package app.com.sample; import androidx.appcompat.app.AppCompatActivity; import androidx.fragment.app.DialogFragment; import android.app.AlarmManager; import android.app.PendingIntent; import android.app.TimePickerDialog; import android.content.Context; import android.content.Intent; import android.os.Bundle; import android.widget.TimePicker; import java.text.DateFormat; import java.util.Calendar; import java.util.Objects; public class MainActivity extends AppCompatActivity implements TimePickerDialog.OnTimeSetListener{ String timeText; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); DialogFragment timePicker = new TimePickerFragment(); timePicker.show(getSupportFragmentManager(), "time picker"); } @Override public void onTimeSet(TimePicker view, int hourOfDay, int minute) { Calendar c = Calendar.getInstance(); c.set(Calendar.HOUR_OF_DAY, hourOfDay); c.set(Calendar.MINUTE, minute); c.set(Calendar.SECOND, 0); updateTimeText(c); startAlarm(c); } private void updateTimeText(Calendar c) { timeText = "Alarm set for: "; timeText += DateFormat.getTimeInstance(DateFormat.SHORT).format(c.getTime()); } private void startAlarm(Calendar c) { AlarmManager alarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE); Intent intent = new Intent(this, NotificationPublisher.class); PendingIntent pendingIntent = PendingIntent.getBroadcast(this, 1, intent, 0); if (c.before(Calendar.getInstance())) { c.add(Calendar.DATE, 1); } Objects.requireNonNull(alarmManager).setExact(AlarmManager.RTC_WAKEUP, c.getTimeInMillis(), pendingIntent); } }
Step 4 − Create a new class NotificationPublisher and add the following code
package app.com.sample; import android.app.Notification; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import androidx.core.app.NotificationCompat; public class NotificationPublisher extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { NotificationHelper notificationHelper = new NotificationHelper(context); NotificationCompat.Builder nb = notificationHelper.getChannelNotification(); notificationHelper.getManager().notify(1, nb.build()); Notification notification = nb.build(); notification.defaults |= Notification.DEFAULT_VIBRATE; notification.defaults |= Notification.DEFAULT_SOUND; } }
Step 5 − Create a new class NotificaitonHelper and add the following code
package app.com.sample; import android.annotation.TargetApi; import android.app.NotificationChannel; import android.app.NotificationManager; import android.content.Context; import android.content.ContextWrapper; import android.os.Build; import androidx.core.app.NotificationCompat; class NotificationHelper extends ContextWrapper { public static final String channelID = "channelID"; public static final String channelName = "Channel Name"; private NotificationManager notificationManager; public NotificationHelper(Context base) { super(base); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { createChannel(); } } @TargetApi(Build.VERSION_CODES.O) private void createChannel() { NotificationChannel channel = new NotificationChannel(channelID, channelName, NotificationManager.IMPORTANCE_HIGH); getManager().createNotificationChannel(channel); } public NotificationManager getManager() { if (notificationManager == null) { notificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); } return notificationManager; } public NotificationCompat.Builder getChannelNotification() { return new NotificationCompat.Builder(getApplicationContext(), channelID) .setContentTitle("Scheduled Alert") .setContentText("Your Alert is Ringing") .setSmallIcon(R.drawable.ic_alarm); } }
Step 6 − Create a new class TimePickerFragment and add the following code
package app.com.sample; import android.app.Dialog; import android.app.TimePickerDialog; import android.os.Bundle; import android.text.format.DateFormat; import java.util.Calendar; import androidx.annotation.NonNull; import androidx.fragment.app.DialogFragment; public class TimePickerFragment extends DialogFragment { @NonNull @Override public Dialog onCreateDialog(Bundle savedInstanceState) { Calendar c = Calendar.getInstance(); int hour = c.get(Calendar.HOUR_OF_DAY); int minute = c.get(Calendar.MINUTE); return new TimePickerDialog(getActivity(), (TimePickerDialog.OnTimeSetListener) getActivity(), hour, minute, DateFormat.is24HourFormat(getActivity())); } }
Step 7 − Add the following code to androidManifest.xml
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="app.com.sample"> <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" android:theme="@style/AppTheme"> <activity android:name=".MainActivity"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <receiver android:name=".NotificationPublisher"></receiver> </application>
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 the android studio, open one of your project's activity files and click the Run icon from the toolbar. Select your mobile device as an option and then check your mobile device which will display your default screen −
- Related Articles
- How to format date and time in android?
- How to set default date time as system date time in MySQL?
- How to change date and time format in Android sqlite?
- How to write date and time changer Listener in Android?
- How to use date time picker in Android?
- How to start an android application at boot time?
- How to set an Android notification to a specific date in the future?
- How to convert date and time into int in Android sqlite?
- How to get current date and time from internet in android?
- How to Start an service at boot time in android app?
- How to display a listView in an android alert dialog?
- Set current date and time to timestamp in MySQL
- How to get Time in Milliseconds for the Given date and time in Java?
- How to use Date Time Picker Dialog in Kotlin Android?
- How to create a custom alert dialogs in an android app?
