代码之家  ›  专栏  ›  技术社区  ›  rosu alin

Smooch ConversationActivity,我怎么知道活动是什么时候启动的?

  •  0
  • rosu alin  · 技术社区  · 7 年前

    https://smooch.io/ 我的问题是当我收到smooch的通知时。如果我在后台,我会在“亲吻”按钮上设置一个“未读消息”长度,用于我的主要活动。

    我无法修改ConversationActivity。来自smooch library的类。

     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 回复  |  直到 7 年前
        1
  •  1
  •   Community CDub    4 年前

    你有几个选择。

    1. onSmoochShown 委托回调。

      显示对话时将触发此回调,因此您可以更新未读计数。

    2. 使用 onUnreadCountChanged 委托回调¨。

      只要当前用户的未读计数发生更改,就会调用此委托。您可以使用此回调相应地更新long。

    由于在点击通知时需要监听这些委托回调,因此最好在应用程序中设置委托 onCreate ,在初始化亲吻之后。