Header Ads

[Android] Set notification repeat in specific time (Source code demo)

//CustomAlarm.class 
package time.alarm;

import java.util.Calendar;

import com.thanhcs.doitnow.*;

import android.app.Activity;
import android.app.AlarmManager;
import android.app.PendingIntent;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.os.SystemClock;

public class CustomAlarm extends Activity {

 AlarmManager am;

 @Override
 public void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.activity_main);
  am = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
  setOneTimeAlarm();
  //setRepeatingAlarm();
 }

 public void setOneTimeAlarm() {
  Intent intent = new Intent(this, TimeAlarm.class);
  PendingIntent pendingIntent = PendingIntent.getBroadcast(this, 0,
    intent, PendingIntent.FLAG_ONE_SHOT);

  Calendar calendar = Calendar.getInstance(); //set time show notification
  calendar.set(Calendar.HOUR_OF_DAY, 00);
  calendar.set(Calendar.MINUTE, 39);
  calendar.set(Calendar.SECOND, 00);
  am.set(AlarmManager.RTC_WAKEUP,
    calendar.getTimeInMillis(), pendingIntent);
 }

 public void setRepeatingAlarm() {
  Intent intent = new Intent(this, TimeAlarm.class); 
  PendingIntent pendingIntent = PendingIntent.getService(this, 0, intent, 0);

  Calendar calendar = Calendar.getInstance();
  calendar.set(Calendar.HOUR_OF_DAY, 00);
  calendar.set(Calendar.MINUTE, 37);
  calendar.set(Calendar.SECOND, 00);
  am.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(),24*60*60*1000 , pendingIntent);  //set repeating every 24 hours

 }

}
//TimeAlarm .class

import android.app.Notification;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;

import com.thanhcs.doitnow.*;

public class TimeAlarm extends BroadcastReceiver {

  NotificationManager nm;

  @SuppressWarnings("deprecation")
 @Override
  public void onReceive(Context context, Intent intent) {
   nm = (NotificationManager) context
     .getSystemService(Context.NOTIFICATION_SERVICE);
   CharSequence from = "thanhcs.blog";
   CharSequence message = "android notification demo";
   PendingIntent contentIntent = PendingIntent.getActivity(context, 0,
     new Intent(), 0);
   @SuppressWarnings("deprecation")
 Notification notif = new Notification(R.drawable.ic_launcher,
     "Crazy About Android...", System.currentTimeMillis());
   notif.setLatestEventInfo(context, from, message, contentIntent);
   nm.notify(1, notif);
  }

 
 }

///////// in file manifest need to add
  <receiver android:name="yourpackage.TimeAlarm" />

No comments:

Powered by Blogger.