我正在使用以下代码在我的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);
答案 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();