是否可以缩短Android中显示的通知时间?

时间:2016-11-23 11:00:49

标签: android android-notifications android-notification-bar

我正在使用以下代码在我的Android手机上显示通知。我想减少用于显示通知的时间。现在,它花费大约2秒钟来显示,然后它被隐藏了。我想把时间从2秒减少到1秒。有可能吗?

Notification notification = new NotificationCompat.Builder(context)
                    .setContentTitle(context.getString(R.string.app_name))
                    .setContentText("Notification")
                    .setAutoCancel(false)
                    .setPriority(Notification.PRIORITY_MAX)
                    .setSmallIcon(R.mipmap.ic_launcher)
                    .setDefaults(Notification.DEFAULT_SOUND | Notification.DEFAULT_VIBRATE)
                    .setLargeIcon(BitmapFactory.decodeResource(context.getResources(), R.mipmap.ic_launcher))
                    .build();

NotificationManager notificationManager = getNotificationManager(context);
notificationManager.notify(SAFER_DISCONNECTED_NOTIFICATION_ID, notification);

2 个答案:

答案 0 :(得分:2)

  

现在,它花了大约2秒钟来显示,然后隐藏起来。

对于在抬头模式中显示Notification的时间量没有特别保证,我认为这就是你所指的。

例如,默认情况下,它将在Android 4.4及更早版本上显示0秒,这本身不支持抬头通知。但是,用户可以使用NotificationListenerService安装应用,但该服务可能会显示通知,但无论多长时间,都需要。

  

有可能吗?

不,抱歉。这是在显示通知的代码的控制之下。

答案 1 :(得分:0)

通知由Android显示,并且无权限用于更改非通讯设备中的通知预览时间 - 生命的应用程序。

但如果通知内容不重要,您可以在一秒钟后以编程方式取消通知:

1-创建一秒钟后完成任务的时间:

new java.util.Timer().schedule(
    new java.util.TimerTask() {
        @Override
        public void run() {
            runOnUiThread(new   Runnable() {
                public void run() {
                    //your code for cancel notification(s)
                }
           });
        }
    }, 
1000);

2-您可以取消通知:

NotificationManager nMgr = (NotificationManager) getApplicationContext().getSystemService(Context.NOTIFICATION_SERVICE);
nMgr.cancel(NOTIF_ID);

或取消给定上下文中的所有通知:

nMgr.cancelAll();
相关问题