gpt4 book ai didi

java - 我应该使用什么类型的线程方法来连续工作?

转载 作者:行者123 更新时间:2023-11-30 04:25:55 25 4
gpt4 key购买 nike

我的应用程序目前使用普通线程来生成服务器、客户端,甚至是交换 WiFi 网络并启动前一个的线程。这些线程在后台运行,不会对 UI 产生任何影响,所以这是我一直在寻找的东西,但问题是当我重新进入应用程序时,所有这些线程都会重新创建。是否可以创建一个单例线程,以便在我们重新打开应用程序时对其进行控制?

Android 还提供了一些类:

服务:但是它使用了UI线程...

AsyncTask:可能是更好的选择

IntentService:有一个可以被操纵的工作线程吗?可能是上面的最佳选择。

任何想法/意见将不胜感激。 :)

编辑:

另外,为什么我想将我的普通线程更改为其他方法,因为 Android 会优先处理普通线程。

线程调用层次:

MainActivity -> NetworkSwap(扫描、连接和交换 WiFi 网络的无限进程)、ServerTCP(无限监听连接)、 ServerUDP(无限监听连接)

Networkswap -> ClientUDP(向serverUDP发送广播请求并结束)

ServerUDP -> ClientTCP(向serverTCP发送请求并结束)

最佳答案

我仍然不完全清楚您使用这些线程的目的。从标题上看,您似乎正在进行持续的工作,但在描述中,听起来您有时会做较小的离散工作。也不清楚这些类型的工作是否相关。

也就是说,对于正在进行的工作,我会说将您当前存在的线程移动到由常规服务管理,从而提供独立于 Activity 的生命周期并且可以进行持续的后台工作。对于较小的离散工作 block ,IntentService 更适合。如果您有这两种类型的工作,并且它们之间的关系不是很密切,您甚至可以考虑同时拥有这两种类型的服务(听起来就像您有多个线程一样)。

关于java - 我应该使用什么类型的线程方法来连续工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8527714/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com