Android 聊天应用与REST应用-在活动中使用线程还是在服务中使用线程?
在Virgil Dobjanschi的演讲“开发Android REST客户端应用程序”(link)中,他说了一些令我惊讶的事情。包括:Android 聊天应用与REST应用-在活动中使用线程还是在服务中使用线程?,android,Android,在Virgil Dobjanschi的演讲“开发Android REST客户端应用程序”(link)中,他说了一些令我惊讶的事情。包括: 不要在活动生成的线程中运行http查询。相反,与服务通信以完成这些操作,并将信息存储在ContentProvider中。使用ContentObserver以获得更改通知 始终在服务中执行长时间运行的任务,而不是在活动中 完成后停止服务 我知道他说的是RESTAPI,但我正试图让它与我对应用程序的其他想法相适应。我一直在使用的一个API对他们的聊天界面使用长
- 不要在活动生成的线程中运行http查询。相反,与服务通信以完成这些操作,并将信息存储在ContentProvider中。使用ContentObserver以获得更改通知
- 始终在服务中执行长时间运行的任务,而不是在活动中
- 完成后停止服务
ContentProvider
部分有严重保留
始终在一个环境中执行长时间运行的任务
服务,永远不要在你的活动中
每个人都有他们最喜欢的“总是”和“从不”陈述,包括我自己。我不愿意把它归入“永远”一类。使用服务
作为长期运行任务的主基地是一个不错的策略,但它也有它的问题(例如,在屏幕旋转中,unbindService()
将在下一个bindService()之前销毁服务
)
如果没有其他绑定的连接,就会启动,如果你有一个复杂的应用程序,就会留下一大堆连接记账)
对于使用长消息的聊天应用程序
轮询以模拟推送和即时消息
回应,这仍然是最佳实践吗
使用服务执行HTTP
查询,并将信息存储在
内容提供者
这是一种实践。伊姆霍,陪审团仍然非常清楚这是否是一种最佳做法。我认为有服务是必要的,因为你的活动可能会被扼杀。