您的位置:首页 > 移动开发 > Android开发

android services

2015-12-03 10:47 337 查看
服务在其托管进程的主线程中运行,它既不创建自己的线程,也不在单独的进程中运行(除非另行指定)。
这意味着,如果服务将执行任何 CPU 密集型工作或阻止性操作(例如 MP3 播放或联网),则应在服务内创建新线程来完成这项工作。通过使用单独的线程,可以降低发生“应用无响应”(ANR) 错误的风险,而应用的主线程仍可继续专注于运行用户与 Activity 之间的交互。


使用服务还是线程?

简单地说,服务是一种即使用户未与应用交互,但它仍可以在后台运行的组件。 因此,您应仅在必要时才创建服务。如需在主线程外部执行工作,不过只是在用户正在与应用交互时才有此需要,则应创建新线程而非服务。 例如,如果您只是想在 Activity 运行的同时播放一些音乐,则可在
onCreate()
中创建线程,在
onStart()
中启动线程,然后在
onStop()
中停止线程。您还可以考虑使用
AsyncTask
HandlerThread
,而非传统的
Thread
类。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: