android - Android 12 - 通知蹦床限制
问题描述
由于android 12, 通知蹦床限制导致我的项目出现大问题。我开发了一个 SDK,它用于显示本地通知。我的问题是我使用的通知是在应用程序中显示横幅或打开 Web 视图。对于Notification trampoline 限制,我需要使用pending intent指定通知点击事件。我的问题是,从 SDK 方面,我找到了应用程序包 Id 和午餐 MainActivity,每次我点击通知时,即使应用程序在后台或前台,应用程序也会重新启动。
我需要了解以下内容
- 我怎么知道应用程序何时在前台或后台处于活动状态
- 如果存在需要知道哪个活动在栈顶
您是否遇到过相同或类似的问题?你是怎么解决的?任何帮助将不胜感激。谢谢!
解决方案
我正在使用透明的活动来处理这个问题。所有通知相关的工作都在透明活动中处理。
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());
创建透明活动 NotificationActivity.class
推荐阅读
- java - Spring Webflux Webclient:窃听日志记录问题
- asp.net - 工具栏中的 NavigateUrl
- typescript - Spread only overlapping elements of an object into a new one with TypeScript
- msbuild - 构建步骤后在 Cake 脚本中公开 MSBuild 属性
- c - READELF - 如何在符号名称后添加“@GLIBX_XXX”
- mysql - 无法删除 myphpadmin mysql 表中的字段(在奖励空间免费托管上)
- ios - 如何使用 UICollectionViewCompositionalLayout 将不同宽度的项目放在一起?
- python - TensorFlow 从 TFrecords 生成列 ['label'] 的 CSV 文件
- amazon-web-services - 需要导出 Amazon S3 服务器中每个文件的路径/url
- java - 在 JPA 中使用 @EmbeddedId 替代 @GeneratedValue 的可能方法