Android 12 - 通知蹦床限制

jer*_*cob 3 sdk android push-notification android-notifications android-12

由于 android 12, 通知蹦床限制导致我的项目出现一个大问题。我开发了一个 SDK,用于显示本地通知。我的问题是我使用通知是为了显示横幅或在应用程序内打开 Web 视图。对于通知蹦床限制,我需要使用待定意图指定通知单击事件。我的问题是,从 SDK 端,我找到应用程序包 ID 并启动 MainActivity,每次我点击通知时,即使应用程序位于后台或前台,应用程序也会重新启动。

我需要了解以下信息

  1. 我如何知道应用程序何时在前台或后台处于活动状态
  2. 如果存在需要知道哪个活动位于堆栈顶部

您是否遇到过相同或类似的问题?你是怎么解决的?任何帮助将不胜感激。谢谢你!

jer*_*cob 6

我正在使用透明活动来处理这个问题。所有与通知相关的工作都在透明活动中处理。

Intent intent = new Intent(mContext, NotificationActivity.class);
intent.putExtra("notification", parseInt(this.mActionDetail.getNotifyId()));
PendingIntent pendingIntent = PendingIntent.getActivity(mContext, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT | PendingIntent.FLAG_MUTABLE);
builder.setContentIntent(pendingIntent);
builder.setAutoCancel(true);
notificationManager.notify(parseInt(this.mActionDetail.getNotifyId()), builder.build());
Run Code Online (Sandbox Code Playgroud)

创建透明活动NotificationActivity.class

  • 这可能是我解决问题的方法,但它似乎是一种反模式……解决通知启动应用程序缓慢问题的方法。 (4认同)
  • 你能详细说明你的答案吗?发布一个例子?谢谢 (3认同)
  • 我最终也做了同样的事情,因为按照“谷歌的方式”这样做将是对现有逻辑的巨大重构,而且这是不值得的。如果他们使这个解决方案在未来的 SDK 中变得不切实际,我们可能会被迫进行深度重构。 (2认同)