我是Android应用程序开发的初学者.现在我想在我的应用程序中设置通知警报.我有一些特定的日期,我想在特定时间获得这些日期的通知.我怎么能这样做?提前致谢
使用在后台运行代码的类AlarmManager.将此代码放在主Activity中:
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.your layout); boolean alarm = (PendingIntent.getBroadcast(this, 0, new Intent("ALARM"), PendingIntent.FLAG_NO_CREATE) == null); if(alarm){ Intent itAlarm = new Intent("ALARM"); PendingIntent pendingIntent = PendingIntent.getBroadcast(this,0,itAlarm,0); Calendar calendar = Calendar.getInstance(); calendar.setTimeInMillis(System.currentTimeMillis()); calendar.add(Calendar.SECOND, 3); AlarmManager alarme = (AlarmManager) getSystemService(ALARM_SERVICE); alarme.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(),60000, pendingIntent); } }
创建一个新类,它将控制是否在一小时通知.
public class BroadcastManager extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { try { String yourDate = "04/01/2016"; String yourHour = "16:45:23"; Date d = new Date(); DateFormat date = new SimpleDateFormat("dd/MM/yyyy"); DateFormat hour = new SimpleDateFormat("HH:mm:ss"); if (date.equals(yourDate) && hour.equals(yourHour)){ Intent it = new Intent(context, MainActivity.class); createNotification(context, it, "new mensage", "body!", "this is a mensage"); } }catch (Exception e){ Log.i("date","error == "+e.getMessage()); } } public void createNotification(Context context, Intent intent, CharSequence ticker, CharSequence title, CharSequence descricao){ NotificationManager nm = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE); PendingIntent p = PendingIntent.getActivity(context, 0, intent, 0); NotificationCompat.Builder builder = new NotificationCompat.Builder(context); builder.setTicker(ticker); builder.setContentTitle(title); builder.setContentText(descricao); builder.setSmallIcon(R.drawable.yourIcon); builder.setContentIntent(p); Notification n = builder.build(); //create the notification n.vibrate = new long[]{150, 300, 150, 400}; n.flags = Notification.FLAG_AUTO_CANCEL; nm.notify(R.drawable.yourIcon, n); //create a vibration try{ Uri som = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION); Ringtone toque = RingtoneManager.getRingtone(context, som); toque.play(); } catch(Exception e){} }
在清单中说:
给予此许可: