【问题标题】:Android Activity / Thread communication design patternAndroid Activity/Thread 通信设计模式
【发布时间】:2011-07-22 15:39:06
【问题描述】:

我正在创建一个基于 Android API 版本 7 的程序,并且想知道处理我的主 Activity 和我的后台工作线程之间的通信的最佳方式。

我看到有一个接受 Messages 的 Handler 类,但是我有一个疑问,我已经研究过,但仍然不确定。

如果正在接收Messages 的Activity 被暂停甚至停止,当Messages 通过Handler 推送时,后台服务会发生什么?他们是否在后台排队并在Activity 恢复时交付?最后,类似于Content Providers,Activity 在暂停时是否必须以某种方式取消注册其处理程序?向暂停的Activity 发布信息会有什么后果?

我还没有确定任何单一的处理方式,所以请就处理这种沟通的最佳方式提出您的建议。我需要监听来自这个后台线程的更新,并在收到前端时按顺序(按顺序)对它们进行处理。

我在这里看到过这样的帖子:Best way for Service that starts Activity to communicate with it

但是这些并不能真正正确地回答我的问题,所以我觉得有必要开始一个新帖子

也有AsyncTasks,但文档并没有真正说明如何处理暂停的Activitys

【问题讨论】:

    标签: android multithreading android-activity background communication


    【解决方案1】:

    当您的活动暂停并且您想向其发送消息时,您应该使用 Intent,但使用 Inten,您的活动将重新开始。如果您想向 Activity 传递消息,但又不想唤醒它,则应实现自己的 Message Stack。

    线程应该向您的堆栈发送消息,一旦您的活动恢复,它应该读取堆栈,但是这样您不能保证活动会收到消息,因为它必须从用户那里回到前面.

    使用 Intent 可确保您的 Activity 实时收到消息并做出反应。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-10-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-17
      • 2020-05-26
      相关资源
      最近更新 更多