执行通知操作时,在Android 9应用上自动关闭通知

时间:2019-05-24 13:32:59

标签: android android-notification-bar

我有一个具有正常运行功能的Android应用程序,现在我已迁移到Android 9(以前以Android 8为目标),但该功能有些破绽。

我有这个流程(启动应用程序时):

  1. 屏幕已关闭
  2. 发生某些事情会触发通知
  3. 屏幕已打开*正在执行通知操作*
  4. 通知会自动从通知栏中消失

定位Android 9之后,通知不会在步骤4中消失。 结果是,执行完操作后,我仍然可以轻按通知,然后该操作再次发生(不需要的行为)。

此行为更改似乎没有记录(以前的默认设置是在执行操作后关闭通知)。如何使我的应用按旧方式工作?

问题:如何恢复以前的行为? (当触发操作并且用户看到操作时,通知会自动关闭)

更新:一些(经过修剪/简化的)代码有望阐明其工作原理

public class FooActivity extends AppCompatActivity {
}

public class NotificationUtil {
   // A lot of boilerplate omitted where notification channels are created
   public void notify(Intent startActivity) {  
       ContextProvider.getSystemService(Context.NOTIFICATION_SERVICE).notify("NotificationUtil", 0,  new NotificationCompat.Builder().nextIntent(startActivity).x().y().build());
   }
}

因此,第2步将Intent操作设置为FooActivity触发NotificationUtil.notify()。 FooActivity会在打开屏幕时按预期自动启动(例如,我认为隐式“消耗”了通知。但是该通知仍保留在通知栏中,并且可以再次点击并启动FooActivity(不需要的行为)。

参考

  1. https://developer.android.com/about/versions/pie/android-9.0-changes-28
  2. https://developer.android.com/guide/topics/ui/notifiers/notifications

0 个答案:

没有答案