是否有可能减少在Android中显示的通知时间



我正在使用波纹管代码在我的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秒钟的时间来显示,然后被隐藏。

没有特别保证Notification以heads-up模式显示的时间,我认为这是您所指的。

例如,默认情况下,它将在Android 4.4及更早之前显示0秒钟,这并不能本地支持主机通知。但是,用户可以安装带有NotificationListenerService的应用程序,但是该服务可以显示通知,并且它想要多长时间。

可能吗?

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

通知由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();

最新更新