Android开发笔记之《Service学习》

今天学习了一下Service,现在来总结一下。

除了常用的Activity之外,Service就是次常用的了,Service是运行在后台的一种服务程序,一般Service是处理一些不与用户交互的东西,比如播放音乐。

使用Service要继承Service类。

我们通过调用startService()启动一个Service或者使用bindService()方法来绑定一个存在的Service,还可以通过RPC(远程进程调用)机制来实现不同进程间Service的调用

Service中定义了一系列和自身声明周期有关的方法,重要的方法有:

onBind(Intent intent):是必须实现的一个方法,返回一个绑定的接口给Service

onCreate():当Service第一次被创建时,由系统调用

onStart(Intent intent,int startId):当通过startService()方法启动Service时,该方法被调用

onDestroy():当Service不再使用,系统调用该方法


启动,停止,绑定,解绑定Service的例子如下:

private OnClickListener listener = new OnClickListener()
{
	@Override
	public void onClick(View v)
	{
		Intent intent = new Intent(MainActivity.this, TestService.class);
		switch (v.getId())
		{
		case R.id.button1:
			startService(intent);  //启动服务
			break;
		case R.id.button2:
			stopService(intent);  //终止服务
			break;
		case R.id.button3:
			bindService(intent, conn, Service.BIND_AUTO_CREATE);     //绑定服务
			break;
		case R.id.button4:
			unbindService(conn);     //终止绑定
			break;
		default:
			break;
		}
	}
};
private ServiceConnection conn = new ServiceConnection()        //bindService需要用到的一个类
{
	@Override
	public void onServiceDisconnected(ComponentName name)
	{
		Log.i(TAG,"UnBind Service");
		Toast.makeText(MainActivity.this, "断开连接!", Toast.LENGTH_SHORT);
	}
	@Override
	public void onServiceConnected(ComponentName name, IBinder service)
	{
		Log.i(TAG,"Bind Service");
		Toast.makeText(MainActivity.this, "连接成功!", Toast.LENGTH_SHORT);
	}
};

Service还可以创建AIDL(接口定义语言)文件来生成两个进程之间相互访问的代码,这个以后有需要再继续学习





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值