【问题标题】:Allowing AsyncTask to Manipulate Values in Different Activity Classes允许 AsyncTask 操作不同 Activity 类中的值
【发布时间】:2011-02-12 07:22:46
【问题描述】:
这个标题可能看起来很奇怪,所以让我试着解释一下我想要做什么。我有几个活动类,每个活动类代表我的应用程序中的不同视图。我的初始活动类在应用程序启动时被加载。用户输入值并最终打开一个 TCP 套接字,然后我使用AsyncTask 来侦听和响应来自服务器的消息。我希望这个 AsyncTask 类能够在应用程序关闭/达到错误条件之前进行监听,并且能够在其他活动类启动后更新它们的值。这有意义吗(这是一个漫长而令人沮丧的夜晚)?我知道静态活动类引用是不好的做法,从其他活动中接触 UI 线程也是不好的,但是我很难找到一个干净的解决方案来解决这个问题。也许在这里使用AsyncTask 不是最好的方法?我应该改用服务还是完全使用其他东西?
提前致谢。
【问题讨论】:
标签:
android
android-activity
android-asynctask
【解决方案1】:
用户输入值,最终打开一个 TCP 套接字,然后我使用 AsyncTask 监听和响应来自服务器的消息。
AsyncTask 专为短期操作(例如,闪存读取、闪存写入、Web 服务调用)而设计。使用您自己的后台线程进行无限长的操作。
我希望这个 AsyncTask 类能够在应用程序关闭/达到错误条件之前进行监听
Android 中没有“应用关闭”这样的概念,就像 Web 上没有“应用关闭”的概念一样。
并且能够在其他活动类启动后更新它们的值。
这听起来像是一项服务的工作,而不仅仅是一些随机线程或AsyncTask。对于初学者,一旦启动后台线程或AsyncTask 的原始活动被破坏,您就必须摆脱后台线程或AsyncTask。
我应该改用服务还是完全使用其他东西?
我强烈建议您研究一下服务。