如何获取活动通知的意图?
How to get the intent of the Active Notification?
我正在创建一个具有广播接收器的应用程序,它是通过清单注册的。
它从其他应用程序接收到一个意图并显示通知。
通知有一个 pendingIntent
,它在点击时启动 MainActivity
,并使用意图将一些值(如发件人应用程序的 packageName
)传递给它。
现在,如果用户没有使用通知打开 MainActivity
,我正在使用 NotificationManager.getActiveNotifications()
方法来获取活动通知,但我无法从中获取意图。
到目前为止我尝试过的事情:
- 我不想使用动态广播接收器,因为我想在后台接收意图。
- 我尝试在
sharedPreference
中创建通知时存储数据,如果有任何活动通知,我稍后可以在 MainActivity
中获取。不确定这是否是最好的方法。
- 使用service的
onBind
方法获取MainActivity
中的数据,但是后台服务无法从broadcast receiver启动,所以只有当MainActivity
是运行.
有没有办法通知MainActivity
来自广播接收器的数据,即使MainActivity
不是运行,并尽快[=11]获取数据=] 启动。
任何帮助将不胜感激。
在我看来,使用 NotificationManager.getActiveNotifications()
获取您存储在通知中的信息并不是一个好主意。
您已经在问题中说明了为什么这是一个坏主意的一些原因。此外,如果用户在打开您的应用程序之前删除了通知,那么您将丢失所有信息。
最好的方法是在广播中接收数据时将数据存储在设备内存中(存储数据的方式取决于数据本身,可能是 sharedPreferences、数据库、文件...)接收器。
在MainActivity
中,您可以从内存中检索数据并进行处理。
我正在创建一个具有广播接收器的应用程序,它是通过清单注册的。
它从其他应用程序接收到一个意图并显示通知。
通知有一个 pendingIntent
,它在点击时启动 MainActivity
,并使用意图将一些值(如发件人应用程序的 packageName
)传递给它。
现在,如果用户没有使用通知打开 MainActivity
,我正在使用 NotificationManager.getActiveNotifications()
方法来获取活动通知,但我无法从中获取意图。
到目前为止我尝试过的事情:
- 我不想使用动态广播接收器,因为我想在后台接收意图。
- 我尝试在
sharedPreference
中创建通知时存储数据,如果有任何活动通知,我稍后可以在MainActivity
中获取。不确定这是否是最好的方法。 - 使用service的
onBind
方法获取MainActivity
中的数据,但是后台服务无法从broadcast receiver启动,所以只有当MainActivity
是运行.
有没有办法通知MainActivity
来自广播接收器的数据,即使MainActivity
不是运行,并尽快[=11]获取数据=] 启动。
任何帮助将不胜感激。
在我看来,使用 NotificationManager.getActiveNotifications()
获取您存储在通知中的信息并不是一个好主意。
您已经在问题中说明了为什么这是一个坏主意的一些原因。此外,如果用户在打开您的应用程序之前删除了通知,那么您将丢失所有信息。
最好的方法是在广播中接收数据时将数据存储在设备内存中(存储数据的方式取决于数据本身,可能是 sharedPreferences、数据库、文件...)接收器。
在MainActivity
中,您可以从内存中检索数据并进行处理。