2017-08-05 78 views
0

我似乎不明白如何顯示多個通知沒有一個疊加另一個。在我的情況下,它只在當時顯示一個。 picture 1如何讓程序在屏幕上顯示多個通知?

我的目標是得到它的工作,像下面 picture 2

我應該改變或可能添加到我的代碼截圖?分配通知

@Override 
    protected void onPostExecute(Bitmap result) { 

     super.onPostExecute(result); 
     Intent intent = new Intent(ctx, MainActivity.class); 
     intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
     intent.putExtra("com.example.romanchuk.appisode.notifyId", id); 
     intent.putExtra("com.example.romanchuk.appisode.show_id", show_id); 
     PendingIntent pendingIntent = PendingIntent.getActivity(ctx, sNotificationId /* Request code */, intent, 
       PendingIntent.FLAG_UPDATE_CURRENT); 

     Uri defaultSoundUri = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION); 

     NotificationCompat.InboxStyle inboxStyle = new NotificationCompat.InboxStyle(); 

     inboxStyle.addLine(message); 

     NotificationCompat.BigTextStyle bigText = new NotificationCompat.BigTextStyle(); 
     bigText.bigText(message); 
     bigText.setBigContentTitle(getString(R.string.app_name)); 

     NotificationCompat.Builder builder = new NotificationCompat.Builder(ctx); 
     Notification notification = null; 
     notification = builder.setSmallIcon(R.mipmap.ic_launcher).setTicker(title).setWhen(0) 
       .setLargeIcon(BitmapFactory.decodeResource(getResources(), R.mipmap.ic_launcher)) 
       .setColor(getResources().getColor(R.color.color_accent)) 
       .setContentTitle("Appisode") 
       .setContentIntent(pendingIntent) 
       .setFullScreenIntent(pendingIntent, true) 
       .setContentText(message) 
       .setDefaults(Notification.DEFAULT_ALL) 
       .setAutoCancel(true) 
       .setStyle(inboxStyle) 
       .setSmallIcon(R.drawable.small_icon) 
       .setSound(defaultSoundUri).build(); 

     NotificationManager notificationManager = 
       (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); 

     notificationManager.notify(sNotificationId++, notification); 
    } 
+0

什麼是你的** sNotificationId **這是不變的..? –

+0

這是可變的 private static int sNotificationId = 1; – JustNice

+0

檢查我的答案,如果你想要多個通知,它應該是不同的通知。 –

回答

0

如果你想顯示多個通知,通知ID應該是不同的,如果通知ID在通知中已經存在,它將覆蓋該通知

塊的代碼。

notificationManager.notify(sNotificationId++, notification); 

在這種sNotificationId應該爲所有通知不同

如果您idshow_id爲int而不是恆定的,如果它會爲每個通知不同,你可以使用也可以作爲通知ID。

還是儘量給不同的標籤進行這樣每個通知,

notificationManager.notify(String.valueOf(System.currentTimeMillis()), sNotificationId++, notification); 
相關問題