我正在编写一个从 rest 接口(interface)加载数据的应用程序。 对于这个任务,我使用了一个被 Activity 调用的服务。这些调用基于“消息”。我这样做是因为我认为仅发送一条消息不会导致 UI 线程阻塞(我使用了来自 android 文档的大部分 RemoteService 示例代码)。但是感觉如果发送消息的 UI 线程仍然被阻塞(ui 直到程序流停止更新,由消息引起)。
我对消息系统的整个想法有什么误解吗?我是否需要在单独的线程中启动服务来解决这个问题?!
最佳答案
使用处理程序发送消息不会阻塞,具体取决于您使用它做什么。如果您向服务发送消息,然后立即在服务器中发送 http 请求,那么它将被阻止。如果您发送一条消息,然后让该服务在操作栏中简单地发布一个通知,那么它就不会阻止。
服务在主 UI 线程上运行。它们不在后台运行,因此您在服务中执行的任何操作都将在 UI 线程上运行,如果服务执行大量工作,则可以阻止它。
关于android - 在 Android 中做消息 block ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7320754/