一个服务是一个组件,这个组件可以在Android后台运行,即使你的这个应用被关闭,它依然在运行。所以说只有你需要一个和当前程序无关的后台程序时,才去创建它。
而如果你只是想让你的App在主线程外工作,而且操作限定在当前程序中时,只需要在在里面创建另一个线程。
比如你只是想在你的Activity在运行时,放一首音乐,那么你应该在onCreat()方法里创建另一个线程,在onStart()里开始线程,在onStop()里结束这个线程,同时你也要考虑到使用AsyncTask orHandlerThread,而不是使用传统的线程类Thread。(PS:这里大家可以参考Processes and Threading文档,如果看不懂的话,我可以译给大家看)
记住,如果你确实创建了一个Service,你也应该在Service里创建另一个线程,否则在默认情况下,Service占用主线程,会导致线程堵塞或者内存过度使用。这是由于除非你另外创建线程,否则一个Service只会在他的托管线程运行,这意味着如果你使用Service进行任何使用CPU的密集操作或者堵塞操作,
你的应用会出现卡顿或者不响应的错误(ANR)。
【Android API Guides简译(四)】使用Service还是使用线程?
原文地址:http://blog.csdn.net/qq_22939165/article/details/44924163