【问题标题】:Message queue solution for activities that come and go on Android?Android 上来来去去的活动的消息队列解决方案?
【发布时间】:2011-04-16 19:12:21
【问题描述】:

假设我有一个服务 S 和活动 A。S 为 A 下载数据(或处理一些长时间运行的工作,无论如何),但 A 并不总是存在。我不希望 S 在它的作业队列为空时徘徊:S 应该将完成的作品的结果发布到 A 的某种邮箱中,这样 A 可以在它再次回来时提取消息。

不使用SQLite的文件存储实现邮箱可以实现吗?我更喜欢一些更快的机制,写操作在设备上往往很慢。我曾考虑在 ApplicationContext 中使用一个简单的静态列表,但是依赖 ApplicationContext 的 afaik 会导致一个有风险/脆弱的解决方案。

谁能推荐一个解决这个问题的模式?

【问题讨论】:

    标签: android message-queue android-service


    【解决方案1】:

    如果不使用文件存储的SQLite来实现邮箱,是否可以实现?

    不可靠。要么它是一个文件,要么它可能在 A 再次回来之前被核弹。请记住,您的进程——所有静态数据成员和Application 对象所在的位置——不会永远存在。一旦 S 关闭(这是一件好事,谢谢!),欢迎 Android 终止该进程,如果您的“邮箱”仅在 RAM 中,请随身携带。

    您可以将它持久化到磁盘,同时保留一个单例或其他东西作为缓存,因此如果 A 快速返回,您可以跳过一些 I/O。或者,如果 A 的消息是否存在并不重要,您可以将它们保存在 RAM 中,如果进程首先终止,您只需耸耸肩。

    【讨论】:

      猜你喜欢
      • 2018-12-20
      • 2012-06-15
      • 2011-12-18
      • 2012-08-22
      • 2018-11-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多