android 服务解析

时间:2021-11-09 01:30:55

https://blog.csdn.net/luoyanglizi/article/details/51586437

android 服务解析

2、service和Thread的区别

定义上:

thread是程序运行的最小单元,可以用来执行异步操作

service是android的一种机制,他是运行在android的主线程上,

service是运行在主线程,所以它不能执行一些耗时操作,如果是要作耗时操作,就要在service里面创建子线程,再做耗时逻辑

为什么不直接在activity里创建子线程进行耗时操作?

因为activity很难对thread进行控制,而Service,对于activtity就很简单了

启动service的两种方法:

1、android 服务解析

2、android 服务解析

 button.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v) {
Intent startIntent = new Intent(v.getContext(),MyService.class);
startService(startIntent); }
});

用startService()方法来启动服务,活动里面可以用stopService(Intent)来停止服务

服务自身可以用stopSelf()来停止

public class MyService extends Service {
@Nullable
@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();
}
}

第一次启动服务时 onCreate()和onStartCommand()会调用,之后只有onStartCommand()执行

为了让活动知道服务做了什么,就要借助服务中的onBind()方法

创一个类继承Binder类