从线程获取当前活动

时间:2010-11-28 09:01:21

标签: android multithreading android-activity

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

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

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

我怎样才能取得这种行为?

非常感谢,

詹姆斯

1 个答案:

答案 0 :(得分:5)

Android中长时间运行任务编程的经验法则。如果你有:

  1. 一次仅由一个活动使用的短期任务(线程),然后使用AsyncTask

  2. 长期运行的任务应该在Activity的生命周期中存活和/或由多个活动(也在您的应用程序外部)使用,而不是使用Service。服务是一个单独的流程,对于关闭比活动更具弹性。

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