Android学习笔记day_09

一、Service

一个组件长期后台运行,没有界面,可以理解为一个没有界面长期运行的activity。service经常用来处理一些耗时间的程序,比如网络传输或者播放音乐
1.掌握服务的生命周期
2.掌握服务的两种启动方式
3.学会使用服务与activity进行通信
4.学会调用其他应用的服务(跨进程通信)

1 创建一个服务

1)创建一个服务类继承servie

public class MyServices extends Service {
	@Override
	public IBinder onBind(Intent intent) {
		System.out.println("wo shi  fu wu");
		return null;
	}
}

2)在清单文件里面配置服务

<service android:name="com.example.myservice.MyServices"></service>

3) 在MainActivity里面开启服务


public class MainActivity extends Activity {

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		//开启服务
		Intent intent = new Intent(this,MyServices.class);
		startService(intent);
	}
}

2 服务的生命周期

服务启动方式

1) start开启服务

startService(intent);
直接开启服务,一旦开启跟调用者没用任何关系,调用者activity没法访问服务里面的方法

周期
onCreate —>onStartCommand —> onStart(过时方法 ) —>onDestory
一旦服务被开启后,就不会再调用onCreate方法

stopService(intent);
关闭服务

2) bind开启服务

bindService()
绑定开启服务,服务和开启者有密切关系,只要activity停止,服务也跟着关闭,调用者activity可以调用服务里面的方法

绑定方式开启服务,调用服务方法的流程

绑定生命周期 oncreate() —> onbind() —> onDestory();不会调用onstart()方法和onStartCommand方法

在这里插入图片描述

1.使用bindService的方式开启服务

bindService(intent, new MyConn(), Context.BIND_AUTO_CREATE);

2.实现一个MyConn服务与activity的通讯频道(中间人的联系渠道)
private class MyConn implements ServiceConnection{
		
		/**
		 * 服务成功绑定时执行的方法,得到中间人
		 */
		@Override
		public void onServiceConnected(ComponentName name, IBinder service) {
			myBinder = (MyBinder) service;
		}

		/**
		 * 服务失去绑定或者突然异常终止的时候调用的方法
		 */
		@Override
		public void onServiceDisconnected(ComponentName name) {
			
		}
3.服务成功绑定的时候会执行onBinder方法,返回中间人
public class MyBinder extends Binder {
		/**
		 * 内部人员帮助外部调用服务的方法
		 */
		public void callMethonInService(){
			methodInService();
		}
	}
4.调用者activity里面代码里面通过中间人调用服务的方法
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值