不可以。
Service和activity是运行在当前app所在的main thread(UI主线程)中的,而耗时操作(如:网络请求、拷贝数据、大文件)会阻塞主线程,给用户不好的体验。
Broadcase耗时操作为10秒,Activity耗时操作为5秒
Service耗时操作为20秒
如果需要在服务中进行耗时操作,可以选择IntentService, IntentService是Service的子类,用来处理异步请求。
IntentService在onCreate()方法中通过HandlerThread单独开启一个线程来处理Intent请求对象所对应的任务,这样可以避免事务处理阻塞主线程。
onHandleIntent()函数针对Intent的不同进行不同的事务处理就可以,执行完一个Intent请求对象所对应的工作之后,如果没有新的Intent请求达到,则自动停止Service; 否则ServiceHandler会取得下一个Intent请求
传入该函数来处理其所对应的任务。
本文解释了Service和IntentService在Android应用中的作用。Service运行在主线程中,若执行耗时操作会影响用户体验。IntentService作为Service的子类,能够通过创建独立线程处理耗时任务,确保主线程流畅运行。
2613

被折叠的 条评论
为什么被折叠?



