Android Service启动方式

发布于 2020-01-11 22:52:40
关注者
0
被浏览
2299
1 个回答
  • 面试哥
    面试哥 2020-01-11
    为面试而生,有面试问题,就找面试哥。

    1.startService

    ①.定义一个类继承service

    ②.在manifest.xml文件中配置该service

    ③.使用context的startService(intent)启动该service

    ④.不再使用时,调用stopService(Intent)停止该服务

    2.bindService

    ①.创建bindService服务段,继承自service并在类中,创建一个实现binder接口的实例对象并提供公共方法给客户端调用

    ②.从onbind()回调方法返回此binder实例

    ③.在客户端中,从onserviceconnected()回调方法接收binder,并使用提供的方法调用绑定服务

    5.Activity的启动方式(偶尔会问)

    ①.standard模式

    a.Activity的默认启动模式
    
    b.每启动一个Activity就会在栈顶创建一个新的实例。例如:闹钟程序
    
    缺点:当Activity已经位于栈顶时,而再次启动Activity时还需要在创建一个新的实例,不能直接复用。
    

    ②.singleTop模式

    特点:该模式会判断要启动的Activity实例是否位于栈顶,如果位于栈顶直接复用,否则创建新的实例。 例如:浏览器的书签
    
    缺点:如果Activity并未处于栈顶位置,则可能还会创建多个实例。
    

    ③.singleTask模式

    特点:使Activity在整个应用程序中只有一个实例。每次启动Activity时系统首先检查栈中是否存在当前Activity实例,如果存在
    
              则直接复用,并把当前Activity之上所有实例全部出栈。例如:浏览器主界面
    

    ④.singleInstance模式

    特点:该模式的Activity会启动一个新的任务栈来管理Activity实例,并且该势力在整个系统中只有一个。无论从那个任务栈中    启动该Activity,都会是该Activity所在的任务栈转移到前台,从而使Activity显示。主要作用是为了在不同程序中共享一个Activity
    
知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看