Android基础知识:Service(1)初识Service

简介

今天,我们来学习Service,首先了解下什么是Service

Service:勤劳的后台服务者

从字面意思上来看,Service就是服务,而且是后台运行的,在Android中很多辛苦的活都是Service干,但Service却没有Activity那么风光,系统顶多给它在下拉通知栏显示

我们平时用的一些音乐app在回到桌面或者锁屏后仍能播放音乐,这就是服务的作用,下面的我们来创建一个自己的服务。

创建项目

下面我们来试着创建一个Service

可以创建一个类然后继承Service(记得在AndroidMainfest.xml中注册)
也可以New > Service > Service(系统会自动帮我们在AndroidMainfest.xml中注册)

创建完成后就可以看到

MyService.java

public class MyService extends Service {
    public MyService() {
    }

    @Override
    public IBinder onBind(Intent intent) {
        return null;
    }
}

里面有两个方法,一个是MyService的构造方法,一个是onBind方法(这个方法后面会详细分析)

AndroidMainfest.xml


这样,一个Service就创建完成了

回调方法

创建完成之后的Service还不可以用,我们还需重写它的一些回调方法,修改Service.java

public class MyService extends Service {
    public MyService() {
    }

    @Override
    public IBinder onBind(Intent intent) {
        return null;
    }

    @Override
    public void onCreate() {
        super.onCreate();
    }

    @Override
    public int onStartCommand(Intent intent, int flags, int startId) {
        return super.onStartCommand(intent, flags, startId);
    }

    @Override
    public void onDestroy() {
        super.onDestroy();
    }
}

这样,我们的Service就算正式完成了

启动一个服务

接下来我们试试启动这个Service
在主界面中放一个Button,并注册单击事件

mBtn.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
        Intent intent=new Intent(MainActivity.this,MyService.class);
        startService(intent);
    }
});

可以看到启动Service所构建的Intent和Activity一样,只是启动所调用的方法不同

Activity:startActivity(intent)
Service:startService(intent)

其实Activity启动Service还有一种方式:BindService,这个是让Activity于Service绑定,这样Activity就可以从Service中读写数据,关于Service更多知识我们后面会慢慢分析。

你可能感兴趣的:(Android基础知识:Service(1)初识Service)