这个标题可能看起来很奇怪,所以让我试着解释一下我想要做什么。我有几个活动类,每个类代表我的应用程序中的不同视图。应用程序启动时,我的初始活动类被加载。用户输入值并最终打开TCP套接字,然后我使用AsyncTask
侦听并响应来自服务器的消息。我希望这个AsyncTask
类能够实际监听,直到应用程序关闭/达到错误条件,并且能够在启动后更新其他活动类中的值。这是否有意义(这是一个漫长而令人沮丧的夜晚)?我知道静态活动类引用是不好的做法,从其他活动触摸UI线程也很糟糕,但我找不到解决这个问题的干净解决方案。也许使用AsyncTask
不是最好的方法吗?我应该使用服务还是完全使用其他服务?
提前致谢。
答案 0 :(得分:3)
用户输入值并最终打开TCP套接字,然后我使用AsyncTask监听并响应来自服务器的消息。
AsyncTask
专为短期操作而设计(例如,闪存读取,闪存写入,Web服务调用)。使用您自己的后台线程进行无限长的操作。
我希望这个AsyncTask类能够实际监听,直到应用程序关闭/达到错误状态
Android中没有“app is closed”这样的概念,只不过在网络上有一个“app is closed”的概念。
并且能够在启动后更新其他活动类中的值。
这听起来像服务的工作,而不仅仅是一些随机线程或AsyncTask
。对于初学者来说,一旦你的原始活动开始后台线程或AsyncTask
被破坏,你就必须摆脱背景线程或AsyncTask
。
我应该使用服务还是完全使用其他服务?
我强烈建议您研究服务。