[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: