Android Activity / Thread通信设计模式

时间:2011-03-25 03:57:21

标签: android multithreading android-activity background communication

我正在创建一个基于Android API版本7的程序,并希望了解处理我的主Activity和我的后台工作线程之间的通信的最佳方法。

我看到有一个Handler课程接受Message但是我怀疑我已经研究过但仍然不确定。

如果收到Activity的{​​{1}}被暂停甚至停止,那么当Message推送Message时,后台服务会发生什么?它们是否在幕后排队并在Handler恢复后交付?最后,类似于Activity s,Content Provider在暂停时是否必须以某种方式取消注册其处理程序?将信息发布到暂停的Activity会产生什么后果?

我还没有采用任何单一的处理方式,所以请提供建议,以便采用最佳方式处理此类通信。我需要监听来自此后台线程的更新,并在收到前端时按顺序(按顺序)对它们进行操作。

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

然而,这些并没有真正正确回答我的问题,所以我认为有必要开始一个新的帖子

还有Activity个但是文档并没有真正说明如何处理暂停的AsyncTask

1 个答案:

答案 0 :(得分:1)

当您的活动暂停并且您想要向其发送消息时,您应该使用Intent,但使用Inten,您的活动将再次启动。如果你想将消息传递给你的Activity,但你不想将其唤醒,你应该实现自己的消息堆栈。

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

使用Intent可确保您的活动能够实时获取消息并做出反应。