您的位置:首页 > 职场人生

Android面试题-Service是否在main thread中执行, service里面是否能执行耗时的操作?

2017-05-20 15:05 253 查看

源码分析相关面试题

Volley源码分析

注解框架实现原理

okhttp3.0源码分析

onSaveInstanceState源码分析

Activity相关面试题

保存Activity的状态

activity的启动模式原理(一)

activity的启动模式原理(二)

activity的启动模式原理(三)

ActivityRecord TaskRecord和ProcessRecord之间的关系

service里面startActivity抛异常?activity不会

如何退出Activity?如何安全退出已调用多个Activity的Application?

Service相关面试题

IntentService源码分析

Service是否在main thread中执行, service里面是否能执行耗时的操作

service被kill之后怎么让它重启

与XMPP相关面试题

与XMPP相关试题一

与XMPP相关试题二

与性能优化相关面试题

与性能优化相关面试题一

与性能优化相关面试题二

与性能优化相关面试题三

与性能优化相关面试题四

与性能优化相关面试题五

与性能优化相关面试题六

与IPC机制相关面试题

与登录相关面试题

oauth认证协议原理

token产生的意义

微信扫一扫实现原理

与开发相关面试题

迭代开发的时候如何向前兼容新旧接口

手把手教你如何解决as jar包冲突

context的原理分析

解决ViewPager.setCurrentItem中间很多页面切换方案

创建虚拟机时报错 Please file a bug against Android Studio

字体适配

键盘弹起挡住输入框

机型适配之痛,例如三星、小米、华为、魅族等

与人事相关面试题

人事面试宝典

Service不是独立的进程,也不是独立的线程,它是依赖于应用程序的主线程的,也就是说,在更多时候不建议在Service中编写耗时的逻辑和操作(比如:网络请求,拷贝数据库,大文件),否则会引起ANR。

如果想在服务中执行耗时的任务。有以下解决方案:

1) 在service中开启一个子线程

new Thread(){}.start();


2) 可以使用IntentService异步管理服务

参考文章IntentService的使用:

http://blog.csdn.net/mwq384807683/article/details/72549222

Service 和 Activity 在同一个线程,对于同一 app 来说默认情况下是在同一个线程中的 main Thread (UI Thread)

欢迎关注微信公众号,长期推荐技术文章和技术视频

微信公众号名称:Android干货程序员

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息