使用广播接收器从 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。鉴于您在创建通知时可以使用此信息
我正在使用 GCM 创建一个聊天应用程序。
应用程序从 MainActivity 开始,用户在那里输入用户名,然后我注册用户,将 gcm 信息(名称和设备 ID)保存在 Web 服务器和 SharedPreferences 中,然后我在 MainActivity 中加载用户列表。我单击列表中的一个用户,打开带有附加功能(我的名字、他的名字、他的设备 ID)的 ChatActivity。我从他那里收到了一条消息,我收到了一个有待处理意图的通知,广播接收器更新了聊天时间线,如果我点击通知,它会打开 ChatActivity 并显示更新的聊天时间线,一切正常。
问题发生在应用程序关闭并且我收到通知时。当我单击通知时,我的应用程序假设为该特定用户打开 ChatActivity 并使用新消息填充聊天时间线。
发生的情况是 ChatActivity 已加载,但由于它已关闭,因此未完成注册,因此它不知道活跃用户是谁,也不会加载新消息。
解决这个问题的最佳方法是什么?
在通知的 Intent(包含在 PendingIntent 中的那个)中,放置与单击 MainActivity 列表中的用户时放入 Intent 中的相同的 Extras。鉴于您在创建通知时可以使用此信息