我尝试在NotificationCompat.Builder上使用API 15上的Notification,但如果我通过10秒(100000毫秒),那么通知会立即启动。 问题出在哪儿? 我想在10秒后开始通知,我该怎么办?
这是我方法的代码
private void createNotification(long when,String data){
String notificationContent ="Notification Content Click Here to go more details";
String notificationTitle ="This is Notification";
Bitmap largeIcon = BitmapFactory.decodeResource(getResources(), R.drawable.ic_launcher);
int smalIcon =R.drawable.ic_launcher;
String notificationData="This is data : "+data;
Intent intent =new Intent(getApplicationContext(), NotificationDetailsActivity.class);
intent.putExtra("textkey", notificationData);
intent.setData(Uri.parse("content://" + when));
PendingIntent pendingIntent = PendingIntent.getActivity(getApplicationContext(), 0, intent, PendingIntent.FLAG_NO_CREATE);
NotificationManager notificationManager =(NotificationManager) getApplicationContext().getSystemService(Context.NOTIFICATION_SERVICE);
NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(
getApplicationContext())
.setWhen(when)
.setContentText(notificationContent)
.setContentTitle(notificationTitle)
.setSmallIcon(smalIcon)
.setAutoCancel(true)
.setTicker(notificationTitle)
.setLargeIcon(largeIcon)
.setDefaults(Notification.DEFAULT_LIGHTS| Notification.DEFAULT_VIBRATE| Notification.DEFAULT_SOUND)
.setContentIntent(pendingIntent);
Notification notification=notificationBuilder.build();
notificationManager.notify((int) when, notification);
}
答案 0 :(得分:1)
这不是setWhen()
所做的。根据{{3}}:
设置事件发生的时间。面板中的通知按此时间排序。
这与Unix时间内触发通知的事件发生的时间(即,您收到消息,社交网络更新等)有关,因此默认值是documentation返回的内容(即,现在)。传递100,000(实际上是100秒)将意味着1970年1月1日,UTC时间12:01:40。
如果您希望安排在将来某个时间显示通知,则应通过System.currentTimeMillis()设置闹钟,以便您在指定时间触发通知代码。