2017-01-13 6 views
0

Я пытаюсь реализовать групповое уведомление, как whatsapp. Но проблема здесь в том, что первые 6 уведомлений видны пользователю. Как я могу отображать последние 6 уведомлений вместо первого.андроид группы уведомления показать последнее уведомление вместо первого

PFB демо-код же:

import android.app.Notification; 
import android.app.NotificationManager; 
import android.os.Build; 
import android.os.Bundle; 
import android.support.annotation.RequiresApi; 
import android.support.v7.app.AppCompatActivity; 

import static android.R.attr.value; 

@RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN) 
public class MainActivity extends AppCompatActivity { 
    Notification.InboxStyle inboxStyle = new Notification.InboxStyle(); 
    private final int NOTIFICATION_ID = 237; 
    private static int NOTIFICATION_ID1 = 237; 

    final static String GROUP_KEY_EMAILS = "group_key_emails"; 

    static int i=0; 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     send(++i+""); 
     send(++i+""); 
     send(++i+""); 
     send(++i+""); 
     send(++i+""); 
     send(++i+""); 
     send(++i+""); 
     send(++i+""); 
     send(++i+""); 
     send(++i+""); 
     send(++i+""); 
     send(++i+""); 
     send(++i+""); 
     send(++i+""); 
     send(++i+""); 
     send(++i+""); 
     send(++i+""); 
     send(++i+""); 
     send(++i+""); 
     send(++i+""); 
     send(++i+""); 
     send(++i+""); 
     send(++i+""); 
     send(++i+""); 
     send(++i+""); 
     send(++i+""); 
     send(++i+""); 
     send(++i+""); 
     send(++i+""); 
     send(++i+""); 
     send(++i+""); 
     send(++i+""); 
     send(++i+""); 
     send(++i+""); 
     send(++i+""); 
     send(++i+""); 
     send(++i+""); 
     send(++i+""); 
     send(++i+""); 
     send(++i+""); 
     send(++i+""); 
     send(++i+""); 

    } 


    public void send(String message) 
    { 
     NotificationManager nManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE); 
     Notification.Builder builder = new Notification.Builder(this); 
     builder.setContentTitle(message+"Lanes"); 
     builder.setContentText(message+"Notification from Lanes"+value); 
     builder.setSmallIcon(R.mipmap.ic_launcher); 
     builder.setAutoCancel(true); 
     inboxStyle.setBigContentTitle(message+"Enter Content Text"); 
     inboxStyle.addLine(message+"hi events "+value); 
     builder.setStyle(inboxStyle); 
     nManager.notify("App Name",NOTIFICATION_ID ,builder.build()); 

    } 



} 

ответ

1

enter image description here Используйте массив строк для хранения новых сообщений уведомления.
Каждый раз, когда создается новое уведомление, отмените уведомление и добавьте сообщения в конструктор уведомлений с конца списка.
Я пробовал это, и это сработало!

private final int NOTIFICATION_ID = 237; 
ArrayList<String> notificationText = new ArrayList<>(); 
Notification.InboxStyle inboxStyle ; 

static int i=0; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    send(++i+""); 
    send(++i+""); 
    send(++i+""); 
    send(++i+""); 
    send(++i+""); 
    send(++i+""); 
    send(++i+""); 
    send(++i+""); 
    send(++i+""); 
    send(++i+""); 
    send(++i+""); 
    send(++i+""); 
    send(++i+""); 
    send(++i+""); 
    send(++i+""); 
    send(++i+""); 
    send(++i+""); 
    send(++i+""); 
    send(++i+""); 
    send(++i+""); 
    send(++i+""); 
    send(++i+""); 
    send(++i+""); 
    send(++i+""); 
    send(++i+""); 
    send(++i+""); 
    send(++i+""); 
    send(++i+""); 
    send(++i+""); 
    send(++i+""); 
    send(++i+""); 
    send(++i+""); 
    send(++i+""); 
    send(++i+""); 
    send(++i+""); 
    send(++i+""); 
    send(++i+""); 
    send(++i+""); 
    send(++i+""); 
    send(++i+""); 
    send(++i+""); 
    send(++i+""); 

} 


public void send(String message) 
{ 
    notificationText.add(message); 
    NotificationManager nManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE); 
    nManager.cancelAll(); 

    Notification.Builder builder = new Notification.Builder(this); 
    inboxStyle = new Notification.InboxStyle(); 
    builder.setContentTitle(message+"Lanes"); 
    builder.setContentText(message+"Notification from Lanes"+value); 
    builder.setSmallIcon(R.mipmap.ic_launcher); 
    builder.setAutoCancel(true); 
    inboxStyle.setBigContentTitle(message+"Enter Content Text"); 
    for(int i=notificationText.size()-1;i>=0;i--){ 
     inboxStyle.addLine(notificationText.get(i)+"hi events "+value); 
    } 
    builder.setStyle(inboxStyle); 
    nManager.notify("App Name",NOTIFICATION_ID ,builder.build()); 

} 
+0

не работает в Нуга может у проверить это –

+0

я могу видеть notfication приходит, но, как только я открываю уведомление трей его не видно там –

+0

я просто проверил с Нуга и она отлично работает. –