Tôi cần phải tạo thành một nhóm thông báo. Tôi đã tạo ví dụ enter link description hereThông báo xếp chồng không hoạt động
nhưng thông báo của tôi không được nhóm lại. tôi đã làm gì sai?
mã của tôi:
private static int id =0;
final static String GROUP_KEY_GUEST = "group_key_guest";
private static void generateNotification(Context context, String message) {
NotificationManagerCompat notificationManager = NotificationManagerCompat.from(context);
Intent intent = new Intent(context,MyActivity.class);
PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, intent, PendingIntent.FLAG_CANCEL_CURRENT);
Notification notification = new NotificationCompat.Builder(context)
.setContentIntent(pendingIntent)
.setSmallIcon(R.drawable.ic_stat_gcm)
.setLargeIcon(BitmapFactory.decodeResource(context.getResources(), R.drawable.ic_stat_gcm))
.setTicker("New Message")
.setWhen(System.currentTimeMillis())
.setAutoCancel(true)
.setContentTitle("Message")
.setContentText(message)
.setGroup(GROUP_KEY_GUEST)
.build();
notificationManager.notify(id++, notification);
}
gọi phương thức:
@Override
protected void onMessage(Context context, Intent intent) {
Log.d(TAG, "Поступило сообщение: " + intent.getExtras());
String message = intent.getStringExtra("content");
generateNotification(context, message);
}
EDIT, mã đầy đủ: Đây là dịch vụ của tôi mà tôi tạo ra các thông báo
package com.managment.pavel.managmentgradle;
public class GCMIntentService extends GCMBaseIntentService {
private static int id =0;
final static String GROUP_KEY_GUEST = "group_key_guest";
NotificationManagerCompat notificationManager;
public GCMIntentService() {
super(SENDER_ID);
notificationManager = NotificationManagerCompat.from(getApplicationContext());
}
@Override
protected void onMessage(Context context, Intent intent) {
String message = intent.getStringExtra("content");
generateNotification(context, message);
}
@Override
protected void onError(Context context, String s) {
Toast.makeText(context,"Error",Toast.LENGTH_LONG).show();
}
@Override
protected void onRegistered(Context context, String registrationId) {
ServerUtilities.register(context, registrationId);
}
@Override
protected void onUnregistered(Context context, String registrationId) {
ServerUtilities.unregister(context, registrationId);
}
private void generateNotification(Context context, String message) {
Intent intent = new Intent(context,MyActivity.class);
PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, intent, PendingIntent.FLAG_CANCEL_CURRENT);
Notification notification = new NotificationCompat.Builder(context)
.setContentIntent(pendingIntent)
.setSmallIcon(R.drawable.ic_stat_gcm)
.setLargeIcon(BitmapFactory.decodeResource(context.getResources(), R.drawable.ic_stat_gcm))
.setTicker("Новое сообщение")
.setWhen(System.currentTimeMillis())
.setAutoCancel(true)
.setContentTitle("Сообщение")
.setContentText(message)
.setGroup(GROUP_KEY_GUEST)
.build();
notificationManager.notify(id++, notification);
}
}
Tôi nghĩ rằng bạn mỗi lần khởi tạo thể hiện mới của NotificationManagerCompat vì vậy hãy thử khởi tạo chỉ onetime bên generateNotification ra(). –
có lẽ ngu ngốc nhưng tôi không thể. lớp công khai GCMIntentService mở rộng GCMBaseIntentService { private static int id = 0; Chuỗi tĩnh cuối cùng GROUP_KEY_GUEST = "group_key_guest"; NotificationManagerCompat notificationManager; GCMIntentService công cộng() { siêu (SENDER_ID); notificationManager = NotificationManagerCompat.from (getApplicationContext()); } –