Android 从线程获取当前活动

Android 从线程获取当前活动,android,multithreading,android-activity,Android,Multithreading,Android Activity,我有一个线程监听TCP连接。建立连接后,我希望基本上停止当前活动正在执行的操作,并转到另一个运行不同线程并显示不同布局的活动 目前,我还希望保持该线程运行(等待TCP连接) 我可以使用startActivity()将活动从一个更改为另一个,但这在我的线程中不起作用 我怎样才能做到这一点 非常感谢 JamesAndroid中长时间运行任务编程的经验法则。如果您有: 一次仅由一个活动使用的短期运行任务(线程),然后使用 一个长期运行的任务,应该在活动的生命周期内生存和/或由多个活动(也在应用程序外部

我有一个线程监听TCP连接。建立连接后,我希望基本上停止当前活动正在执行的操作,并转到另一个运行不同线程并显示不同布局的活动

目前,我还希望保持该线程运行(等待TCP连接)

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

我怎样才能做到这一点

非常感谢


James

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

  • 一次仅由一个活动使用的短期运行任务(线程),然后使用

  • 一个长期运行的任务,应该在活动的生命周期内生存和/或由多个活动(也在应用程序外部)使用,而不是使用。服务是一个单独的流程,它比活动更能适应停机

  • 需要基于某些外部条件运行的任务,如:位置更改、网络可用等。或者如果需要定期数据同步或基于计时器的任务,则不需要运行任务,只需使用适当的API注册代码,操作系统将在适当时调用它。这被称为异步编程,是Android上的首选选项,因为它通过只在需要调用代码时调用代码来最小化内存和处理器的使用


  • 非常感谢你的解释,这是非常有用的。我需要使用服务或API(2或3)。我不确定是否有一个API可以“等待TCP连接”。你知道我怎么知道吗?否则谢谢你!非常有帮助!服务是否可以加载活动?我的服务是永远等待TCP连接。当发生这种情况时,将启动一个接收和发送UDP数据包的活动(它也有自己的布局)。这行得通吗?即使应用程序在后台,您也需要保持TCP连接持续打开吗?这将耗尽电池电量,在移动网络上可能会很贵。是的,服务可以启动活动。但这被认为是非常糟糕的做法:如果用户正在做其他事情(使用其他应用程序),您的活动将突然启动,当前活动将被置于后台。你知道你手机上有这样的应用吗?在这种情况下,最好使用通知(声音、led、通知栏)。这是通过NotificationManager完成的。我正在构建一个VoIP应用程序。因此,我正在等待传入连接。如果建立了连接,我将切换到UDP并开始发送和接收语音记录。所以我想是的,它将一直开放。