【发布时间】:2018-06-28 20:16:50
【问题描述】:
我在我的项目中集成了PushWoosh。当用户点击通知时,我需要打开活动。收到推送后,我应该获取数据(比如说 id)并使用 Intent 发送此 id 并打开我的 Activity。
所以,我创建了工厂(用于自定义推送通知)并在GenerateNotification() 回调中创建了通知。但是,当我设置待定意图并单击通知后,它会打开我的主要活动。
public class MyFactory extends AbsNotificationFactory {
private String id;
@Override
public Notification onGenerateNotification(PushData pushData) {
final String notificationTitle = "Title";
id = pushData.getExtras().getString("Id");
final Intent pushIntent = new Intent(getContext().getApplicationContext(), PushActivity.class);
pushIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP);
pushIntent.putExtra("Id", id);
final int uniqueId = Math.abs(UUID.randomUUID().hashCode());
PendingIntent pendingIntent = PendingIntent.getActivity
(getContext(), uniqueId, pushIntent, PendingIntent.FLAG_UPDATE_CURRENT);
NotificationCompat.BigTextStyle bigTextStyle = new NotificationCompat.BigTextStyle();
bigTextStyle.setBigContentTitle(notificationTitle);
bigTextStyle.bigText(notificationAlert);
final NotificationCompat.Builder builder = new NotificationCompat.Builder(getContext())
.setSmallIcon(R.drawable.app_icon)
.setContentTitle(notificationTitle)
.setDefaults(Notification.DEFAULT_SOUND)
.setContentIntent(pendingIntent)
.setContentText(notificationAlert)
.setStyle(bigTextStyle);
final Notification notification = builder.build();
final NotificationManager notificationManager = (NotificationManager) getContext().getSystemService(Context.NOTIFICATION_SERVICE);
//notificationManager.notify(uniqueId, notification);
notification.flags |= Notification.FLAG_AUTO_CANCEL;
return notification;
}
@Override
public void onPushReceived(PushData pushData) {
}
@Override
public void onPushHandle(Activity activity) {
}
}
但是如果我放的话,重定向会起作用
notificationManager.notify(uniqueId, notification);
return null;
【问题讨论】:
标签: android push-notification pushwoosh