一分钟掌握Service生命周期
来源:互联网 发布:老凤祥网络旗舰店 编辑:程序博客网 时间:2024/05/16 08:44
Service有两种启动方式,1、通过startService启动。2、通过bindService()方式启动。下图说明了以两种方式启动时service的生命周期。
写个例子说明
一、Service
package com.example.aidlexample;import android.app.Service;import android.content.Intent;import android.os.IBinder;import android.os.RemoteException;import com.example.aidlexample.Dog.Stub;public class DogDescribe extends Service {@Overridepublic int onStartCommand(Intent intent, int flags, int startId) {// TODO Auto-generated method stubSystem.out.println("通过startService方式调用" + "onStartCommand()执行 ");return super.onStartCommand(intent, flags, startId);}private DogBinder dogbinder;// 将IBinder对象返回给访问者@Overridepublic IBinder onBind(Intent intent) {// TODO Auto-generated method stubSystem.out.println("通过bindService调用" + "onBind()执行");return dogbinder;}@Overridepublic boolean onUnbind(Intent intent) {// TODO Auto-generated method stubSystem.out.println("onUnbind()");return super.onUnbind(intent);}@Overridepublic void onCreate() {// TODO Auto-generated method stubsuper.onCreate();dogbinder = new DogBinder();}// 继承自动代码生成的类Stub(实现了IBinder接口)public class DogBinder extends Stub {@Overridepublic String getDogName() throws RemoteException {// TODO Auto-generated method stubreturn "xiaokeai";}@Overridepublic String getDogWeight() throws RemoteException {// TODO Auto-generated method stubreturn "30kg";}}}
二、startService()方式启动
该方式Service里的onStartCommand()方法执行
protected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);Intent it = new Intent();ComponentName comp = new ComponentName(MainActivity.this,DogDescribe.class);it.setComponent(comp);startService(it);}执行结果:
三、bindService()方式启动
该方式Service里的onBind()方法执行,客户端调用unbindService()时,Service里的unBind()执行
protected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);Intent it = new Intent();ComponentName comp = new ComponentName(MainActivity.this,DogDescribe.class);it.setComponent(comp);bindService(it, conn, Service.BIND_AUTO_CREATE);}执行结果:
不知道大家清楚了没有,关键是看清最上面一副图,哈哈...................
1 0
- 一分钟掌握Service生命周期
- 一分钟掌握Spring中bean的生命周期
- 一分钟掌握Spring中bean的生命周期
- 一分钟掌握Spring中bean的生命周期!
- 一分钟掌握Spring中bean的生命周期
- 一分钟掌握Spring中bean的生命周期!
- 一分钟掌握spring中bean的生命周期
- 一分钟掌握Spring中bean的生命周期!
- 一分钟掌握FactoryBean的实现
- 30分钟掌握STL系列(一)
- 一分钟内掌握较复杂sql
- 一分钟掌握Android spinner下拉框
- 一分钟掌握数据库垂直拆分
- 一分钟掌握数据库垂直拆分
- 一分钟掌握数据库垂直拆分
- 一分钟掌握数据库垂直拆分
- 一分钟掌握数据库垂直拆分
- 一分钟掌握数据库垂直拆分
- sizeof知多少
- 弹球小例子
- pox组件介绍
- Android 获取屏幕尺寸与密度
- 强连通分量(tarjan算法)
- 一分钟掌握Service生命周期
- smartfoxserver2x 与服务器通讯(二)
- jquery手机浮动导航
- 超轻量级DI容器框架Google Guice与Spring框架的区别教程详解及其demo代码片段分享
- 南宁打响救楼市第一枪:官方正式发文松绑限购
- 深拷贝+浅拷贝
- 最短路(Djisteka算法)模板
- java中的匿名内部类总结
- Js匿名函数小指南