Android Service 的介绍与基本使用
来源:互联网 发布:上古卷轴5大叔捏脸数据 编辑:程序博客网 时间:2024/05/21 08:41
作为Android 的四大组件之一的Service 相信你并不陌生,Service主要用于后台服务,或者去执行一些比较耗时的服务,比如说下载文件时,看着下载文件的进度一点一点的增长,相信是个人都觉得非常无聊,像用手机做点其他东西 但是没有Service的话 下载就会断开,所以这个时候Service 就起了很大的作用了,当我们的程序开启了Service后 在我们不手动结束应用的情况下,我们可以在运行一些任务时,还可以做一些其他的事情这就是Service的强大了。。。
下面我们来看一下怎样去启动一个Service
首先Service 是一个类 这个类 继承与Service 并且这个类 还要重写onCreate(),onStartCommand(),onDestroy(),这三个方法,并且需要在Androidmanifest 文件中写上
<service android:name=".MyService" android:enabled="true" android:exported="true"></service>
下面是Service 类
public class MyService extends Service { public MyService() { } @Override public IBinder onBind(Intent intent) { // TODO: Return the communication channel to the service. return new Binder(); } @Override public int onStartCommand(Intent intent, int flags, int startId) { System.out.println("服务已启动"); return super.onStartCommand(intent, flags, startId); } @Override public void onCreate() { super.onCreate(); System.out.println("服务启动成功"); } @Override public void onDestroy() { super.onDestroy(); System.out.println("已销毁服务"); }}
在启动这个名为MyService 的类后 首先会启动onCreate() 这个函数 然后会启动onStartCommand()函数 在我们关闭服务时 就会只启动onDestroy函数
这就是Service的基本周期了
接下来 我们来看一下如何在去启动这个Service
这里我就不写绑定控件的地方了
btn_StartService.setOnClickListener(this);//开启Service btn_StopService.setOnClickListener(this);//关闭Service btn_BindService.setOnClickListener(this);//绑定控件 btn_UnBindService.setOnClickListener(this);//接触绑定控件
这里给控件添加一个this的监听然后我们在 这个时候 activity 类里面就必须要实现implements View.OnClickListener, ServiceConnection 接口 然后重写onClik函数
/**要启动Service 必须要用一个Intent 这里停止 和开始 绑定 解除绑定都是一个Intent 所以我们只需要定义一个Intent*/ public void onClick(View v) { Intent intent = new Intent(MainActivity.this,MyService.class);//定义一个Intent switch (v.getId()) { case R.id.btn_StartService : startService(intent);//启动服务 break; case R.id.btn_StopService : stopService(intent);//关闭服务 break; case R.id.btn_BindServic: bindService(intent,this,Context.BIND_AUTO_CREATE);//绑定服务,传入一个Intent 和传入一个常量,在传入this是需要重写onServiceConnected onServiceDisconnected 这两个方法 break; case R.id.btn_UnBindService: unbindService(this);//解除绑定 break; } } public void onServiceConnected(ComponentName name, IBinder service) { System.out.println("绑定成功");//在绑定Service后会在onCreate onStartCommand函数启动 后启动这个函数 } @Override public void onServiceDisconnected(ComponentName name) { }
好了 当写好 我们执行的时候 我们首先点击 开始服务的按钮 这个时候就会 写执行onCreate 函数 然后再执行onStartCommand 函数 当启动Service 后再去点击启动服务 只会执行onStartCommand 函数 这个时候我们可以查看手机执行的程序 这个时候你就会发现你的程序虽然推出了 但是还是在手机的执行任务中 为了更加的形象 我们在onCreate 中写一个匿名线程
private boolean Service=flas;//默认情况下我们线程中的输入语句是进不去的 public void onCreate() { super.onCreate(); ServiceRun =true;//当我们点击打开服务时 首先就会启动这个函数 这个时候 这个布尔值 已经成为了true 可以运行线程中的输出语句了 new Thread(){ @Override public void run() { super.run(); while(ServiceRun) { System.out.println("服务运行中"); try { sleep(1000); } catch (InterruptedException e) { e.printStackTrace(); } } } }.start(); System.out.println("服务启动成功"); }
当我们点击关闭服务的时候 就会执行onDestroy 函数 这个时候我们在这个函数执行ServiceRun =false;
就可以关闭这个线程了
并且可以销毁这个服务了
并且 绑定Service 和解除绑定 这两个按钮 我没有多说 是因为这个两个功能和开始 和关闭Service 功能差不多
重写学习了Service 感觉收获还是蛮大的 =-=
- Android Service 的介绍与基本使用
- Android--Animation动画的基本使用与介绍
- Android--Glide图片加载框架的基本使用与介绍
- Android:Service的基本使用1
- Day13-Android中Service的基本使用
- Android的Service服务的基本的介绍
- Android:Service(一)——Service的基本使用
- service介绍之service的使用与本地通信
- Service的基本使用
- Service的基本使用
- Android的Service介绍
- Android蓝牙的基本介绍与实现
- Android蓝牙的基本介绍与实现
- Cocopods的基本介绍与使用:
- SDWebImage的介绍与基本使用
- Volley的介绍与基本使用
- Android -- layer-list的基本使用介绍
- Android Service与AIDL的使用
- 深入理解Java虚拟机笔记---方法调用
- 应用引擎
- FTP上传
- gradle是个啥
- 微信公众平台企业号回调模式的URL验证
- Android Service 的介绍与基本使用
- Spark Streaming实时计算框架介绍
- Laravel整合UEditor编辑器使用阿里云OSS存储(二)改造UEditor上传OSS
- 实时流计算Spark Streaming原理介绍
- Android 实现ListView的A-Z字母排序和过滤搜索功能,实现汉字转成拼音
- 每天读文档
- 实时流计算Spark Streaming原理介绍
- 四大组件之BroadcastReceiver
- ubuntu 下安装intel realsense驱动