自定义通知,如 Inshorts
Custom notification like Inshorts
我想创建一个自定义通知,例如如下图所示的内裤
我也能做到这一点,如下面的截图所示:
但是有两个问题:
- 当我使用 Android Studio 安装应用程序时,最初它工作正常,即为通知显示自定义通知布局(如图 3 所示),但是当我从任务管理器中终止应用程序然后发送通知时,它是默认布局(如图 4 所示)。
- 当我在任何设备上使用 apk 安装应用程序时,我收到的通知样式是默认通知(如图 4 所示)。
纠结了好久,改了Notification的全部代码,问题依旧。我不确定我哪里做错了。
图3
图4
我能够实现我正在寻找的东西,即我期待使用自定义布局来显示通知,但问题是如果应用程序曾经在后台运行,我会收到自定义布局通知以及应用不在后台时的默认通知样式。
"So what exactly the problem was, Push notifications behave differently in the cases where the app is in background or foreground."
当应用程序曾经在后台运行时,正在使用我编写的通知生成器代码,并显示带有自定义布局的通知。此外,当应用程序曾经处于前台时,android 系统无法访问我项目的通知生成器代码,在这种情况下,通知由 Google 服务进程处理,该进程使用默认通知布局。
解法:
早些时候,我从服务器获取的 JSON 对象被命名为 "notification",几乎每个开发人员都使用它。将那个 JSON 对象的名称更改为 "data" 产生了魔力。
通知生成器中的代码曾经是这样的:
String notTitle = remoteMessage.getData().get("title");
以前是哪个:
String notTitle = remoteMessage.getNotification().getTitle();
这样,我的通知始终由应用程序、NotificationService 处理,而不是由 Google 服务进程处理。
我希望这对某人有所帮助。 :)
我想创建一个自定义通知,例如如下图所示的内裤
我也能做到这一点,如下面的截图所示:
但是有两个问题:
- 当我使用 Android Studio 安装应用程序时,最初它工作正常,即为通知显示自定义通知布局(如图 3 所示),但是当我从任务管理器中终止应用程序然后发送通知时,它是默认布局(如图 4 所示)。
- 当我在任何设备上使用 apk 安装应用程序时,我收到的通知样式是默认通知(如图 4 所示)。
纠结了好久,改了Notification的全部代码,问题依旧。我不确定我哪里做错了。
图3
图4
我能够实现我正在寻找的东西,即我期待使用自定义布局来显示通知,但问题是如果应用程序曾经在后台运行,我会收到自定义布局通知以及应用不在后台时的默认通知样式。
"So what exactly the problem was, Push notifications behave differently in the cases where the app is in background or foreground."
当应用程序曾经在后台运行时,正在使用我编写的通知生成器代码,并显示带有自定义布局的通知。此外,当应用程序曾经处于前台时,android 系统无法访问我项目的通知生成器代码,在这种情况下,通知由 Google 服务进程处理,该进程使用默认通知布局。
解法:
早些时候,我从服务器获取的 JSON 对象被命名为 "notification",几乎每个开发人员都使用它。将那个 JSON 对象的名称更改为 "data" 产生了魔力。
通知生成器中的代码曾经是这样的:
String notTitle = remoteMessage.getData().get("title");
以前是哪个:
String notTitle = remoteMessage.getNotification().getTitle();
这样,我的通知始终由应用程序、NotificationService 处理,而不是由 Google 服务进程处理。
我希望这对某人有所帮助。 :)