service:服务是运行在主线程中的,所以不能用来执行耗时操作,必须在服务中新开线程,服务没有Activity界面,即使Activity被销毁,但只要进程还在,服务就会在后台继续执行,服务一般用来在后台执行操作,而线程一般写在服务中,这样activity就能通过服务来控制线程。服务又分为前台服务和后台服务,后台服务优先级比较低,当系统内存不足时会被系统回收。前台服务优先级比较高,会以通知的形式显示在界面上,不会被系统回收。
线程:线程可以用来执行耗时操作,它与服务最大的区别在于服务是运行在主线程中,线程一般不会直接在activity中创建,因为这不利于Activity对线程的控制,线程一般都在服务中创建。