【发布时间】:2011-12-15 22:47:58
【问题描述】:
我的应用程序目前正在使用普通线程来生成服务器、客户端,甚至是一个交换 WiFi 网络并启动前一个的线程。这些线程在后台运行,对 UI 没有任何影响,所以这是我一直在寻找的东西,但问题是当我重新进入应用程序时,所有这些线程都被重新创建。是否可以创建一个可以控制何时重新打开应用程序的单例线程?
Android 也提供了一些类:
服务:但它使用 UI 线程...
AsyncTask:可能是更好的候选者
IntentService:有一个可以操作的工作线程吗?可能是上面的最佳选择。
任何想法/意见将不胜感激。 :)
编辑:
另外我为什么要将我的普通线程更改为其他方法是因为Android会优先考虑普通线程被杀死。
线程调用层次结构:
MainActivity -> NetworkSwap(扫描、连接和交换 WiFi 网络的无限进程),ServerTCP(无限监听连接), ServerUDP(无限监听连接)
Networkswap -> ClientUDP(向serverUDP发送广播请求并结束)
ServerUDP -> ClientTCP(向serverTCP发送请求并结束)
【问题讨论】:
-
您可以在服务中创建线程,就像您可以从活动中创建线程一样。如果您使用服务,即使您的活动被终止,您的工作线程仍将继续工作。
标签: java android multithreading service android-asynctask