Advertisement

Android面试考察:Service启动机制有哪些?

阅读量:

这道题目给我留下了非常深刻的印象,毫无疑问这是我第一次经历这样的面试。当时我参加了一家公司的面试(暂且称其为T公司),争取外派至韩国三星的工作机会。T公司的面试官是一位名叫Bely的架构师,显然在那个时期,Android开发人员属于稀缺资源,对Service的理解程度甚至都能让人刮目相看。不过Bely并没有为难我(毕竟我已经拥有四年多的工作经验,而且外表也颇为出众),因此我回答得较为轻松:

Service是Android系统中用于在后台执行长期任务的一个组件,它本身不包含用户界面。该组件具有两种启动方式,分别是startService和bindService。

你或许已经猜到,Bely紧接着向我提出了一个问题:这两种启动方式之间有什么不同之处?

startService 仅仅用于启动Service,并不会与启动它的组件(例如Activity)建立关联关系。只有当Service自身调用stopSelf方法或由其他组件调用stopService方法时,该服务才会被终止。
bindService 方法用于启动Service,并允许其他组件通过回调机制获取到该服务的代理对象以实现交互功能。同时,在这种模式下,双方之间会形成绑定关系。一旦启动方被销毁,则会自动触发unBind操作;而只有当所有绑定关系都被解除后,该服务才会被销毁

全部评论 (0)

还没有任何评论哟~