我的应用程序目前正在使用普通线程来生成服务器,客户端甚至是交换WiFi网络并启动之前的线程。这些线程在后台运行并且对UI没有任何影响因此它是我正在寻找的东西,但问题是当我重新进入应用程序时,所有这些线程都被重新创建。是否有可能创建一个单例线程,可以在我们重新打开应用程序时控制它?
Android也提供了一些课程:
服务:但它使用的是UI线程......
AsyncTask :可能是更好的候选人
IntentService :有一个可以操作的工作线程?可能是上面最好的选择。
任何想法/意见都将受到高度赞赏。 :)
编辑:
另外,为什么我想将我的普通线程改为其他方法,因为Android会优先考虑普通线程被杀死。
线程调用层次结构:
MainActivity - > NetworkSwap (扫描,连接和交换WiFi网络的无限进程), ServerTCP (无限收听连接), ServerUDP (无限收听连接)
Networkswap - > ClientUDP (向serverUDP发送广播请求并结束)
ServerUDP - > ClientTCP (向serverTCP发送请求并结束)
答案 0 :(得分:1)
我仍然不完全清楚你使用这些线程的是什么。从标题来看,你似乎正在进行正在进行的工作,但在描述中听起来有时候你会做较小的离散工作。还不清楚这些类型的工作是否相关。
也就是说,通过正在进行的工作,我会说要将您当前存在的线程移动到由常规服务管理,从而使生命周期独立于活动,并且可以进行持续的后台工作。对于较小的离散工作块,IntentService是更好的匹配。如果你有这两种类型的工作并且它们不是很相关,你甚至可以考虑使用这两种类型的服务(听起来你有多个线程)。