似乎IS根本无法向死去的A发送消息。
正确。您可以使用事件总线发布A可以接收的事件,如果A没有接收,您可以保留A的详细信息以便稍后查找。
我在这些示例应用程序中演示了基本的事件总线“UI或后备”模式:
LocalBroadcastManager
在我的情况下,后备行为是提出一个 Notification ,但这不是必要条件。
Notification
SharedPreferences不是为消息传递而设计的,所以我担心会产生一些隐藏的后果
一个是表现。 SharedPreferences 始终执行磁盘I / O.在没有A的运行实例的情况下使用它作为后备是可以的。一直使用它并不理想。
SharedPreferences
另请注意,使用时没有什么神奇之处 SharedPreferences 这里。任何形式的持久性都可以工作(例如,数据库,其他类型的文件)。特别是如果可能有来自IS的几条消息需要排队,我会考虑使用 胶带 。