自定义通知,如 Inshorts

Posted

技术标签:

【中文标题】自定义通知,如 Inshorts【英文标题】:Custom notification like Inshorts 【发布时间】:2019-08-08 15:55:59 【问题描述】:

我想创建一个自定义通知,如下图所示

我也能够做到这一点,如下面的截图所示:

但是有两个问题案例:

    当我使用 android Studio 安装应用程序时,最初它工作正常,即为通知显示自定义通知布局(如图 3 所示),但是当我从任务中终止应用程序时经理,然后我发送通知,它是默认布局(如图 4 所示)。 当我在任何设备上使用 apk 安装应用程序时,我都会将通知样式作为默认通知(如图 4 所示)。

我已经被困了很长时间并且已经改变了通知的整个代码,我仍然面临这个问题。我不确定我在哪里做错了。

图片3

图片4

【问题讨论】:

【参考方案1】:

我能够实现我正在寻找的东西,即我期待使用自定义布局来显示通知,但问题是如果应用程序曾经在后台和应用不在后台时的默认通知样式。

“那么问题到底出在哪里,推送通知在应用程序处于后台或前台的情况下表现不同。”

当应用程序曾经在后台时,正在使用我编写的通知构建器代码,并显示具有自定义布局的通知。此外,当应用程序曾经处于前台时,android 系统无法访问我项目的通知构建器代码,在这种情况下,通知正在由 Google 服务进程处理,该进程使用默认通知布局。

解决方案:

之前,我从服务器获取的 JSON 对象被命名为“通知”,几乎每个开发人员都使用它。将该 JSON 对象的名称更改为“数据”确实很神奇。

通知构建器中的代码曾经是这样的:

String notTitle = remoteMessage.getData().get("title");

以前是哪个:

String notTitle = remoteMessage.getNotification().getTitle();

这样,我的通知始终由应用程序、NotificationService 处理,而不是由 Google 服务进程处理。

我希望这对某人有所帮助。 :)

【讨论】:

以上是关于自定义通知,如 Inshorts的主要内容,如果未能解决你的问题,请参考以下文章

在 Android 中自定义通知区域

为啥 Galaxy S21 没有自定义通知声音

如何获取所有应用程序的所有通知都运行自定义通知

自定义通知Notification:自己定义通知Notification下拉后的显示样式

Appcelerator Titanium 中的自定义通知视图

自定义通知中心