Smooch ConversationActivity,我如何知道 activity 何时启动?
Smooch ConversationActivity, how can I know when the activity was launched?
我实现了接吻。 https://smooch.io/
我的问题是,当我收到 smooch 的通知时。如果我在后台,我会在 smooch 按钮上设置我在主要 activity 中使用的 "unread messages" 长度。
问题是当我按下通知时,ConversationActivity 从那里开始。我需要将未读消息设置为 0,因为 ConversationActivity 已打开。我怎么知道什么时候会发生这种情况?
我无法从 smooch 库修改 ConversationActivity.class。
我考虑过自己发出通知,并使用以下代码将创建的 smooch 更改为这个:
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,而不是在创建通知时。我不能把它放在待定的意图中
你有几个选择。
使用 onSmoochShown 委托回调。
显示对话时将触发此回调,因此您将能够更新未读计数。
使用 onUnreadCountChanged 委托回调。
只要当前用户的未读计数发生变化,就会调用此委托。您可以使用此回调相应地更新您的多头。
由于在点击通知时需要监听这些委托回调,因此最好在初始化 Smooch 后在应用程序的 onCreate
中设置委托。
我实现了接吻。 https://smooch.io/ 我的问题是,当我收到 smooch 的通知时。如果我在后台,我会在 smooch 按钮上设置我在主要 activity 中使用的 "unread messages" 长度。 问题是当我按下通知时,ConversationActivity 从那里开始。我需要将未读消息设置为 0,因为 ConversationActivity 已打开。我怎么知道什么时候会发生这种情况?
我无法从 smooch 库修改 ConversationActivity.class。 我考虑过自己发出通知,并使用以下代码将创建的 smooch 更改为这个:
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,而不是在创建通知时。我不能把它放在待定的意图中
你有几个选择。
使用 onSmoochShown 委托回调。
显示对话时将触发此回调,因此您将能够更新未读计数。
使用 onUnreadCountChanged 委托回调。
只要当前用户的未读计数发生变化,就会调用此委托。您可以使用此回调相应地更新您的多头。
由于在点击通知时需要监听这些委托回调,因此最好在初始化 Smooch 后在应用程序的 onCreate
中设置委托。