我正在创建一个基于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
答案 0 :(得分:1)
当您的活动暂停并且您想要向其发送消息时,您应该使用Intent,但使用Inten,您的活动将再次启动。如果你想将消息传递给你的Activity,但你不想将其唤醒,你应该实现自己的消息堆栈。
线程应该向您的堆栈发送消息,一旦您的活动恢复,它应该读取堆栈,但这样您无法保证活动将收到消息,因为它必须从用户回到前面
使用Intent可确保您的活动能够实时获取消息并做出反应。