0

我已經實施了smooch。 https://smooch.io/ 而我的問題是,當我從smooch得到通知。如果我在後臺,我會在「我的主頁」按鈕上設置一個「未讀消息」,用於我的主要活動。 問題是,當我按通知時,ConversationActivity從那裏開始。我需要將未讀消息設置爲0,因爲ConversationActivity已打開。我怎麼知道這是什麼時候發生的?Smooch對話活動,我如何知道活動何時啓動?

我無法修改smooch庫中的ConversationActivity.class。 我想過做通知自己,改變接吻創建一個與這一個使用此代碼:

private static void generateNotificationSmooch(final Context context, String title, String message) { 
    if (title == null) 
     title = context.getString(R.string.passenger_name); 
    Intent notificationIntent = new Intent(context, ConversationActivity.class); 
    notificationIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP | Intent.FLAG_ACTIVITY_NEW_TASK); 
    int iUniqueId = (int) (System.currentTimeMillis() & 0xfffffff); 
    PendingIntent intent = PendingIntent.getActivity(context, iUniqueId, notificationIntent, PendingIntent.FLAG_UPDATE_CURRENT); 
    NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(context); 
    mBuilder.setContentTitle(title).setContentText(message).setSmallIcon(R.drawable.notification_icon); 
    mBuilder.setContentIntent(intent); 
    Notification notification = mBuilder.build(); 
    notification.flags |= Notification.FLAG_AUTO_CANCEL; 

    NotificationManager notificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE); 
    notificationManager.notify(0, notification); 
} 

但我需要在按下通知未讀設置爲0,而不是當我創建通知。而且我無法將它置於等待意圖中

回答

1

您有幾個選擇。

  1. 使用onSmoochShown委託回調。

    此回調將在會話顯示時觸發,因此您可以更新未讀的計數。使用onUnreadCountChanged委託回調。

    只要當前用戶的未讀計數發生變化,就會調用此代理。您可以使用此回調來相應地更新您的多頭。

既然你需要時,通知被竊聽是聽這些委託回調,這可能是最好的設置您的代理在應用程序的onCreate,初始化後接吻。

+0

是的,這是有效的。實施代表使之成爲可能 –