如何在Android中堆叠推送通知?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在Android中堆叠推送通知?相关的知识,希望对你有一定的参考价值。

我正在处理推送通知。当我收到多个通知时,它们都会显示在状态栏中。我需要一个解决方案,其中状态栏中只显示一个图标,并且通知一个堆叠在另一个之上。

答案

谷歌是你的朋友:https://developer.android.com/guide/topics/ui/notifiers/notifications.html#bundle

android 7.0(API级别24)开始,Android为开发人员提供了一种表示通知队列的新方法:捆绑通知。这类似于Android Wear中的Notification Stacks功能。例如,如果您的应用为收到的消息创建通知,则当收到多条消息时,将通知捆绑为一个组。您可以使用Builder.setGroup()方法捆绑类似的通知。

另一答案
public class FirebaseInstanceIDService extends FirebaseInstanceIdService {
private String TAG="FirebaseInstanceIDService";
private Context context;
@Override
public void onTokenRefresh(){
    context=getApplicationContext();
    String Token= FirebaseInstanceId.getInstance().getToken();
    saveToken(Token);
}

private void saveToken(String token) {
    Log.i(TAG,token);
    SharedPref.setToken("Token",token,context);
}
}

创造服务

public class FirebaseMessaginService extends FirebaseMessagingService {
int i=0;
private int temp=0;

@Override
public void onMessageReceived(RemoteMessage remoteMessage) {

    showNotification(remoteMessage.getData().get("message"));

}

private void showNotification(String message) {

   PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);

    NotificationCompat.Builder builder = new NotificationCompat.Builder(this);
    builder.setAutoCancel(true)
            .setContentTitle("Track Mee")
            .setContentText(message)
            .setSmallIcon(R.drawable.ic_marker)
            .setContentIntent(pendingIntent);

    NotificationManager notificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
    notificationManager.notify(0, builder.build());

}
}

在清单文件中写

    <service android:name=".Service.FirebaseInstanceIDService">
    <intent-filter>
        <action android:name="com.google.firebase.INSTANCE_ID_EVENT" />
    </intent-filter>
</service>
<service
    android:name=".Service.FirebaseMessaginService"
    android:enabled="true"
    android:exported="true">
    <intent-filter>
        <action android:name="com.google.firebase.MESSAGING_EVENT" />
    </intent-filter>
</service>

以上是关于如何在Android中堆叠推送通知?的主要内容,如果未能解决你的问题,请参考以下文章

无法堆叠多个推送通知

如何在通知选项卡中单击推送通知消息打开特定片段?

如何在Android中堆叠通知?

如何在android应用程序活动和非活动状态下处理推送通知

如何使用 C# 在 android 中编写推送通知的代码?

如何在推送通知 (GCM) android 中发送图像?