2010-11-28 90 views
2

我有一个线程用于侦听TCP连接。在建立连接时,我想基本停止当前活动正在进行的操作,然后转到另一个运行不同线程并显示不同布局的活动。从线程获取当前活动

现在我还想保持该线程在运行(等待TCP连接)。

我可以在一个Intent上使用startActivity()将活动从一个更改为另一个,但在我的线程内不起作用。

我该如何实现该行为?

非常感谢,

詹姆斯

Android中长时间运行的任务编程的经验

回答

5

规则。如果您有:

  1. 短时间运行的任务(线程),它一次只能使用一个活动,然后使用AsyncTask

  2. 长期运行的应该生存活动的生命周期和/或用于由多个活动(也可外接到您的应用程序),比使用Service任务。服务是一个独立的过程,比活动更易于关闭。

  3. 需要基于某些外部条件运行的任务,如:位置已更改,网络可用等。或者,如果您需要定期数据同步或基于计时器的任务,则无需拥有任务运行,只需用适当的API注册代码,操作系统会在适当的时候调用它。这被称为异步编程,并且是Android上的首选选项,因为它在需要调用代码时仅通过调用代码来最大限度地减少内存和处理器的使用。

+0

非常感谢那些解释,这是非常有用的。我需要使用服务或API(2或3)。我不确定是否有可以“等待TCP连接”的API。你知道我怎么能找到那个吗?否则谢谢!很有帮助! – James 2010-11-28 12:29:35