2015-07-12 27 views
0

刚看完docs的服务在Android和我有一个关于这部分的问题:例不执行“密集或阻塞操作”

小心:服务运行在同一进程中默认情况下声明的应用程序以及该应用程序的主线程中。因此,如果您的服务在用户与来自同一应用程序的活动进行交互时执行密集或阻止操作,则该服务会降低活动性能。为避免影响应用程序的性能,你应该开始一个新的线程服务

我的问题是,什么是在不执行相同的应用程序中运行的服务的一个例子内“密集或阻塞操作?”

将播放音乐为例吗?

我只是想知道为什么我会在没有AsyncTask或其内部的新线程的情况下使用服务。

回答

1

例如,接收推送通知或传感器更新的服务通常不会执行任何阻塞或密集操作。使用MediaPlayermay block播放音乐。

0

例如,您的服务可以执行对异步API的调用:API只能与回调一起使用,并且旨在在内部管理其自己的线程,如:Google Play Services或Volley或RxJava。

在这种情况下,您不需要使用IntentService时获得的后台线程。