允许AsyncTask处理不同活动类中的值

时间:2011-02-12 07:22:47

标签: android android-activity android-asynctask

这个标题可能看起来很奇怪,所以让我试着解释一下我想要做什么。我有几个活动类,每个类代表我的应用程序中的不同视图。应用程序启动时,我的初始活动类被加载。用户输入值并最终打开TCP套接字,然后我使用AsyncTask侦听并响应来自服务器的消息。我希望这个AsyncTask类能够实际监听,直到应用程序关闭/达到错误条件,并且能够在启动后更新其他活动类中的值。这是否有意义(这是一个漫长而令人沮丧的夜晚)?我知道静态活动类引用是不好的做法,从其他活动触摸UI线程也很糟糕,但我找不到解决这个问题的干净解决方案。也许使用AsyncTask不是最好的方法吗?我应该使用服务还是完全使用其他服务?

提前致谢。

1 个答案:

答案 0 :(得分:3)

  

用户输入值并最终打开TCP套接字,然后我使用AsyncTask监听并响应来自服务器的消息。

AsyncTask专为短期操作而设计(例如,闪存读取,闪存写入,Web服务调用)。使用您自己的后台线程进行无限长的操作。

  

我希望这个AsyncTask类能够实际监听,直到应用程序关闭/达到错误状态

Android中没有“app is closed”这样的概念,只不过在网络上有一个“app is closed”的概念。

  

并且能够在启动后更新其他活动类中的值。

这听起来像服务的工作,而不仅仅是一些随机线程或AsyncTask。对于初学者来说,一旦你的原始活动开始后台线程或AsyncTask被破坏,你就必须摆脱背景线程或AsyncTask

  

我应该使用服务还是完全使用其他服务?

我强烈建议您研究服务。