JackyBower 2014-08-18 10:25 采纳率: 0%
浏览 4064

PendingIntent.getActivity 无法跳转到activity?

NotificationManager notificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
Notification notification = new Notification(R.drawable.ic_launcher, "新消息", System.currentTimeMillis());
//采用默认声音
notification.defaults |= Notification.DEFAULT_SOUND;
//使用默认的灯光
notification.defaults |= Notification.DEFAULT_LIGHTS;
//通知被点击后,自动消失
notification.flags |= Notification.FLAG_AUTO_CANCEL;
//点击'Clear'时,不清楚该通知(QQ的通知无法清除,就是用的这个)
notification.flags |= Notification.FLAG_NO_CLEAR;
// 点击清除按钮不会清除消息通知,可以用来表示在正在运行
notification.flags |= Notification.FLAG_ONGOING_EVENT;
Intent appIntent = new Intent(context, EventActivity.class);
appIntent.addCategory(Intent.CATEGORY_LAUNCHER);
appIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED);
PendingIntent contentIntent = PendingIntent.getActivity(context, 0, appIntent, PendingIntent.FLAG_UPDATE_CURRENT);
// notification.setLatestEventInfo(context, title, desc, contentIntent);
notification.setLatestEventInfo(context, "新消息", "“伊斯兰国”攻势不停 美向库尔德人提供武器", contentIntent);
notificationManager.notify(messageNotificationID, notification);

  • 写回答

1条回答 默认 最新

  • 你知我知皆知 2024-08-02 11:55
    关注

    以下回答参考 皆我百晓生券券喵儿 等免费微信小程序相关内容作答,并由本人整理回复。

    PendingIntent.getActivity()方法用于创建一个可操作的PendingIntent对象。这通常用于启动一个新的活动或服务。

    然而,在你的示例中,你尝试使用PendingIntent.getActivity()来发送一个Intent到一个新的活动(EventActivity),但似乎没有成功。这意味着你可能有以下几种情况:

    1. EventActivity类没有实现Intent接口。
    2. 没有正确地将Intent添加到PendingIntent实例中。
    3. 在调用setLatestEventInfo()之前,Intent还没有被正确地传递给PendingIntent

    要解决这些问题,请确保:

    • EventActivity类实现了Intent接口,并且包含正确的意图信息。
    • 将正确的Intent添加到PendingIntent实例中。
    • 在调用setLatestEventInfo()之前,确保所有的意图都已经被传递给PendingIntent实例。

    例如:

    // 创建一个新的Intent并设置其内容
    Intent intent = new Intent(context, EventActivity.class);
    intent.addCategory(Intent.CATEGORY_LAUNCHER);
    intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED);
    
    // 创建一个新的PendingIntent实例
    PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
    
    // 设置最新的事件信息
    notification.setLatestEventInfo(context, "新消息", "“伊斯兰国”攻势不停 美向库尔德人提供武器", pendingIntent);
    

    希望这些信息能帮助你解决问题!如果你还有其他问题或需要进一步的帮助,请随时告诉我。

    评论

报告相同问题?