Android 如何获取活动通知的意图?

Android 如何获取活动通知的意图?,android,android-intent,broadcastreceiver,android-service,Android,Android Intent,Broadcastreceiver,Android Service,我正在创建一个有广播接收器的应用程序,它是通过清单注册的 它从其他应用程序接收意图并显示通知。 通知有一个pendingent,它在点击时启动main活动,并使用intent将一些值(如发送方应用程序的packageName)传递给它。 现在,如果用户没有使用通知打开main活动,我将使用NotificationManager.getActiveNotifications()方法来获取活动通知,但我无法从中获取意图 到目前为止我已经尝试过的事情: 我不想使用动态广播接收器,因为我想在后台接收意图

我正在创建一个有广播接收器的应用程序,它是通过清单注册的

它从其他应用程序接收意图并显示通知。 通知有一个
pendingent
,它在点击时启动
main活动
,并使用intent将一些值(如发送方应用程序的
packageName
)传递给它。 现在,如果用户没有使用通知打开
main活动
,我将使用
NotificationManager.getActiveNotifications()
方法来获取活动通知,但我无法从中获取意图

到目前为止我已经尝试过的事情:

  • 我不想使用动态广播接收器,因为我想在后台接收意图
  • 我在
    SharedReference
    中创建通知时尝试存储数据,如果有任何活动通知,我可以稍后在
    MainActivity
    中获取该通知。不确定这是否是最好的方法
  • 使用服务的
    onBind
    方法获取
    MainActivity
    中的数据,但后台服务无法从广播接收器启动,因此它仅在运行
    MainActivity
    时工作
  • 是否有任何方法可以通知
    MainActivity
    来自广播接收器的数据,即使
    MainActivity
    未运行,并在启动
    MainActivity
    后立即获取数据。
    任何帮助都将不胜感激。

    在我看来,使用
    NotificationManager.getActiveNotifications()
    获取您存储在通知中的信息不是一个好主意。 你已经在你的问题中陈述了为什么这是一个坏主意的一些原因。此外,如果用户在打开应用程序之前删除了通知,则您将丢失所有信息

    最好的方法是在广播接收器接收数据时,将数据存储在设备内存中(存储数据的方式取决于数据本身,它可以是共享引用、数据库、文件…)

    MainActivity
    中,您可以从内存中检索数据并对其进行处理