service的两种启动方式-的生命周期

http://blog.csdn.net/id19870510/article/details/6750459

	@Override
	public void onCreate(Bundle savedInstanceState) {

		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		
		Intent intent = new Intent(this, LogService.class);
		
		//startService(intent); 
		//onCreate  onStart 返回finish activity的时候 service仍然执行
		
		//[既执行startService又执行bindService]  onCreate onStart onBind
		//返回 finish 的时候 不会destroy。 当再次启动activity的时候 只执行onStart
		
		bindService(intent, new ServiceConnection() {
		//	onCreate  onBind   返回finish activity的时候 service--onUnbind onDestroy
			@Override
			public void onServiceDisconnected(ComponentName name) {
				
			}
			
			@Override
			public void onServiceConnected(ComponentName name, IBinder service) {
				
			}
		} , BIND_AUTO_CREATE);


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 服务的启动方式两种:持续运行和受守护程序控制。持续运行的服务一旦启动就会一直运行,而受守护程序控制的服务可以被暂时停止和重新启动。服务的生命周期可以分为4个步骤:启动、运行、暂停和停止。在启动阶段,服务会被安装并被激活,以便被使用。在运行阶段,服务会按照一定的计划执行任务。在暂停阶段,服务可以被暂停,但不会停止运行。在停止阶段,服务会完成当前任务并停止运行。 ### 回答2: service是Android平台上一种用于在后台处理长时间运行任务的组件。它可以在两种不同的方式启动启动型和绑定型。以下是对两种启动方式生命周期的简述: 1. 启动型服务: 启动型服务是通过调用startService()方法来启动的,即使启动服务的组件(如Activity)被销毁,服务仍会继续运行,直到调用stopService()方法来停止服务。启动型服务的生命周期包括以下几个阶段: - onCreate():服务首次创建时调用,在此方法中可以进行一些初始化操作。 - onStartCommand():每次通过startService()方法启动服务时都会调用此方法。在这里可以处理具体的业务逻辑。 - onDestroy():通过调用stopService()方法来停止服务时会调用此方法,可以在这里释放资源。 2. 绑定型服务: 绑定型服务是通过调用bindService()方法来启动的,它与启动型服务不同的是,该服务与一个客户端组件(如Activity)通过绑定而建立关联。绑定型服务的生命周期包括以下几个阶段: - onCreate():服务首次被绑定时调用。 - onBind():用于返回一个实现了ServiceConnection接口的对象,该对象可以控制与服务的连接与断开。在这里可以返回绑定服务的具体实现。 - onUnbind():当所有客户端与服务解除绑定时会调用此方法。 - onDestroy():当通过调用unbindService()来解除与服务的绑定,并且没有其他客户端与服务绑定时会调用此方法。 综上所述,启动型服务和绑定型服务的生命周期有一些相同的阶段,比如onCreate()和onDestroy()方法,但是它们的使用方式和触发时机有所不同。 ### 回答3: service是Android中一种特殊的组件,用于在后台执行长时间运行的任务或提供持续运行的功能,它有两种启动方式启动启动和绑定式启动启动启动(Started Service)是通过调用startService()方法来启动service的,即使没有与之绑定的组件,service也会持续运行直到任务完成或调用stopSelf()方法停止。启动启动service生命周期如下: 1. onCreate():在service创建时调用,只会被调用一次。 2. onStartCommand():在每次调用startService()方法时都会被调用,用于处理启动service时的具体任务逻辑。 3. onBind():由于启动启动不需要与其他组件绑定,所以返回null即可。 4. onDestory():在调用stopSelf()方法或系统强制销毁service时会被调用,用于释放资源和清理工作。 绑定式启动(Bound Service)是通过调用bindService()方法将service与其他组件进行绑定的,它的生命周期如下: 1. onCreate():在service创建时调用,只会被调用一次。 2. onBind():当调用bindService()方法时,系统会调用onBind()方法返回一个IBinder对象给客户端,用于与service进行通信。 3. onUnbind():当调用unbindService()方法解除绑定时,会被调用,表示与service的绑定已解除。 4. onRebind():如果在解除绑定后又调用bindService()方法重新绑定service,会被调用。 5. onDestory():当所有与service的绑定都解除后,会被调用,用于释放资源和清理工作。 可以看出,启动启动service适用于执行一次性任务并且需要在后台持续运行的情况,而绑定式启动service适用于与其他组件进行交互,并且当所有绑定解除时自动停止的情况。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值