2010-03-30 100 views
1

我想知道如何为Android应用程序启动和编写线程管理器。 我的应用程序将用网络I/O填充一个列表,我必须为此管理线程。如何为Android应用程序创建线程管理器?

我从来没有这样做过,我不知道从哪里开始。我听说过线程池和其他东西,但我很困惑。有人能帮助我完成任务吗?

感谢

回答

4

AsyncTask已经有一个线程池 - 只是使用它。

+0

线程可停止(我的意思是可控的?) 例如。如果发生用户交互,那么我可以用这个来停止当前的线程吗? – MrBuBBLs 2010-03-30 17:22:45

+0

是的,你可以调用'cancel()' – Pentium10 2010-03-30 18:03:49

+0

请记住,取消Java中的线程往往是一种挫败感。这不是特定于Android的,而是Java特有的。在可能的范围内,设计您的后台工作以避免取消任务 - 只需让他们完成即可。 – CommonsWare 2010-03-30 18:37:22

0

有在库中一些管理人员(我相信其他人会推荐),但像我这样你可能会在长期内更好地找到它来建立一个能满足您的需要。

它可以非常简单,并且可以通用于Java而不仅仅是Android。它可能只是一个Runnables的ArrayList。一种方法是将一个可运行的程序添加到ArrayList的后面。这个方法第一次被调用时,一个新的线程被初始化并运行。这个线程只是从ArrayList的前面反复删除一个Runnable,并执行它。当ArrayList为空时,线程退出。

您需要注意保持对ArrayList线程的安全访问,但它确实可以非常简单。

如果您需要添加优先级或取消队列中或正在进行的任务,事情会变得更加复杂一些。

+0

我现在知道的是,它必须是单例模式,并且它需要可锁定(意味着只有正在运行的线程才能将项目添加到我的列表视图中)......或者类似的东西:s – MrBuBBLs 2010-03-30 14:19:38

相关问题