【问题标题】:Is it possible to reduce notification time showing in Android?是否可以减少 Android 中显示的通知时间?
【发布时间】:2016-11-23 11:00:48
【问题描述】:

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

【问题讨论】:

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


    【解决方案1】:

    现在,它会花大约 2 秒的时间显示,然后隐藏。

    对于Notification 将在提示模式下显示的时间量没有特别保证,我认为这就是您所指的。

    例如,默认情况下,它会在 Android 4.4 及更早版本上显示 0 秒,它本身不支持提醒通知。但是,用户可以使用NotificationListenerService 安装应用程序,并且该服务可以显示通知,并且无论多长时间,它都可以。

    有可能吗?

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

    【讨论】:

      【解决方案2】:

      通知由 android 显示,并且没有 没有权限 用于在非 root 设备中更改其通知预览时间寿命的应用程序。

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

      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();
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-07-15
        • 1970-01-01
        • 2015-11-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-04-08
        相关资源
        最近更新 更多