このコードを使用して、Heads Up 通知を作成しています。
private static void showNotificationNew(final Context context,final String title,final String message,final Intent intent, final int notificationId, final boolean isHeaderNotification) {
NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(context.getApplicationContext())
.setSmallIcon(R.drawable.prime_builder_icon)
.setPriority(Notification.PRIORITY_DEFAULT)
.setCategory(Notification.CATEGORY_MESSAGE)
.setContentTitle(title)
.setContentText(message)
.setWhen(0)
.setTicker(context.getString(R.string.app_name));
PendingIntent fullScreenPendingIntent = PendingIntent.getActivity(context, 0, intent, PendingIntent.FLAG_CANCEL_CURRENT);
notificationBuilder.setContentText(message);
if(isHeaderNotification) {
notificationBuilder.setFullScreenIntent(fullScreenPendingIntent, false);
}
notificationBuilder.setContentIntent(fullScreenPendingIntent);
notificationBuilder.setAutoCancel(true);
Notification notification = notificationBuilder.build();
NotificationManager manager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
manager.notify(notificationId, notification);
}
問題は、ユーザーの注意を喚起するためにトップ画面の大部分を占める通知が表示されるはずですが、数秒後には閉じて通常の通知が表示されるはずです.
しかし、このコードはそれを行いません。通知は、ユーザーが閉じるまでトップ画面全体に表示されたままになります。
Handler を使用して数秒後に同じ ID で別の通常の通知を作成することを考えていますが、これを行うためのより良い方法があるかどうかを知りたいです。
私が望む動作をシミュレートして、WhatsAppの例に従ってください。