Android基础(五)–Service生命周期及启动方式-创新互联
继承关系
为福安等地区用户提供了全套网页设计制作服务,及福安网站建设行业解决方案。主营业务为成都网站建设、成都网站制作、福安网站设计,以传统方式定制建设网站,并提供域名空间备案等一条龙服务,秉承以专业、用心的态度为用户提供真诚的服务。我们深信只要达到每一位用户的要求,就会得到认可,从而选择与我们长期合作。这样,我们也可以走得更远!Context -> ContextWrapper -> Service 位于 android.app 包中
Service的生命周期
Service启动
1.StartService 同一个Service Start多次,onCreate()执行一次,onStartCommand()执行多次
2.BindService 同一个Service bind多次, onCreate()执行一次,onBind()也执行一次
注意:
1.启动也分隐式和显式.但考虑到安全等因数,如果不是也许需求 一般我们使用显示的调用方式。
2.onStartCommand(Intent intent, int flags, int startId)
onStartCommand有4种返回值
START_STICKY:如果service进程被kill掉,保留service的状态为开始状态,但不保留递送的intent对象。随后系统会尝试重新创建service,由于服务状态为开始状态,所以创建服务后一定会调用onStartCommand(Intent,int,int)方法。如果在此期间没有任何启动命令被传递到service,那么参数Intent将为null。
START_NOT_STICKY:“非粘性的”。使用这个返回值时,如果在执行完onStartCommand后,服务被异常kill掉,系统不会自动重启该服务。
START_REDELIVER_INTENT:重传Intent。使用这个返回值时,如果在执行完onStartCommand后,服务被异常kill掉,系统会自动重启该服务,并将Intent的值传入。
START_STICKY_COMPATIBILITY:START_STICKY的兼容版本,但不保证服务被kill后一定能重启。
3.BindService例代码
Service部分
private BindServiceX myBinderServiceX=new BindServiceX();
public class BindServiceX extends Binder{
public BindService getBindService() {
return BindService.this;
}
}
@Override
public IBinder onBind(Intent arg0) {
// 此处返回自定义Binder
return myBinderServiceX;
}
组件调用部分(以Activity为例)
Intent intentBind = new Intent(AndroidServiceActivity.this, BindService.class);
bindService(intentBind,
new ServiceConnection() {
@Override
public void onServiceDisconnected(ComponentName name) {
}
@Override
public void onServiceConnected(ComponentName name, IBinder service) {
//Service对外提供Bind
BindServiceX bindServiceX = (BindServiceX) service;
//通过bind提供的方法得到Service引用
BindService bindService = bindServiceX.getBindService();
//todo 接下来可以和Service通信了
}
};
, Context.BIND_AUTO_CREATE);
Service关闭
1.stopSelf();
2.stopSelfResult();
3.stopService()
注意:
1.同时使用 startService 与 bindService 要注意到,Service 的终止,需要unbindService与stopService同时调用(调用顺序无所谓),才能终止 Service.
2.Service哪种方式启动必须调用与之对应方法才会关闭Service。
另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
分享名称:Android基础(五)–Service生命周期及启动方式-创新互联
URL链接:http://scyanting.com/article/pgpce.html