使用广播接收器从 pendingintent 加载关闭的应用程序

Loading closed app from pendingintent using a broadcast receiver

我正在使用 GCM 创建一个聊天应用程序。

应用程序从 MainActivity 开始,用户在那里输入用户名,然后我注册用户,将 gcm 信息(名称和设备 ID)保存在 Web 服务器和 SharedPreferences 中,然后我在 MainActivity 中加载用户列表。我单击列表中的一个用户,打开带有附加功能(我的名字、他的名字、他的设备 ID)的 ChatActivity。我从他那里收到了一条消息,我收到了一个有待处理意图的通知,广播接收器更新了聊天时间线,如果我点击通知,它会打开 ChatActivity 并显示更新的聊天时间线,一切正常。

问题发生在应用程序关闭并且我收到通知时。当我单击通知时,我的应用程序假设为该特定用户打开 ChatActivity 并使用新消息填充聊天时间线。

发生的情况是 ChatActivity 已加载,但由于它已关闭,因此未完成注册,因此它不知道活跃用户是谁,也不会加载新消息。

解决这个问题的最佳方法是什么?

在通知的 Intent(包含在 PendingIntent 中的那个)中,放置与单击 MainActivity 列表中的用户时放入 Intent 中的相同的 Extras。鉴于您在创建通知时可以使用此信息