我正在建立一个Android应用程序,在某些时候我需要构建一个新的特定"线程",让我们称之为A.
A应该是什么?服务?一个AsyncTasck? 我认为它不能只是一个线程,因为一个线程链接到一个特定的活动,但我可能是错的。
奖金问题:A和我的活动之间沟通的最佳方式是什么?
感谢您的帮助。
答案 0 :(得分:2)
制作Bounded service。 它适用于所有要点。
答案 1 :(得分:1)
在AsyncTask文档中,您可以看到:
“理想情况下,AsyncTasks应该用于短操作(最多几秒钟)。如果需要保持线程长时间运行,强烈建议您使用java.util提供的各种API。并发包,如Executor,ThreadPoolExecutor和FutureTask。“
因此不适用
答案 2 :(得分:1)
在UI关闭后,服务是包装线程并使其保持活动状态的最佳方式。然后,您的服务将以两种方式与活动进行通信:broadcasting intents或实施callbacks。我个人更喜欢回调一般情况。
根据我的经验,一个主要问题是保持服务活跃并防止Android杀死它以节省内存。仅仅因为我知道这个问题可能会出现,我会说你必须向服务添加一个START_STICKY标志,或者创建一个foreground service而不是后台来保持服务的运行。