,,,,服务的基本操作,启动服务的方式有两种,一种是context.startService,暂停的服务是stopService,这种方式服务与主活动没有关联,不能单纯的进行数据交互(可以考虑使用广播,进行交互),另一种方式binderService,这种方式返回的是一个活页夹对象,
,,,, binderService(目的服务,ServiceConnection康涅狄格州,int旗):第一个参数是意图对象,第二个是链接对象,第三个是否自动创建服务,0是不自动创建,BINDER_AUTO_CREATE
公共类MyService延伸服务{
公共MyService () {}
公共int数=0;
公共MyBinder粘结剂=new MyBinder ();
公共类MyBinder延伸粘合剂{
//创建一个集成粘合剂类的对象,活动调用服务的时候返回一个活页夹对象给活动
公共int getCount () {
=10,
返回计数;
}
}
@Override
公共内部>//必须实现的方法
返回粘合剂;
}
@Override
公共空>//每次创建的时候执行一次,
System.out.println (“onCreate”);
super.onCreate ();}
@Override
公共int>//服务每次运行的时候执行
System.out.println (“onStartCommand”);
超级回报。onStartCommand(意图,旗帜,startId);
}
@Override
公共空>//销毁的之后执行
System.out.println (“onDestroy”);
super.onDestroy ();
}
}
,,,,
公共类MainActivity扩展活动实现>私人按钮启动,停止,得到;
MyService。MyBinder粘合剂;
私人ServiceConnection康涅狄格州=new ServiceConnection () {
@Override
公共空>//链接断开的时候进行掉用
System.out.println(“服务链接断开”);
}
@Override
公共空>//进行链接的时候进行调用
System.out.println(“服务链接成功”);
粘结剂=(MyService.MyBinder)服务;
}
};
@Override
保护空白> super.oncreate (savedInstanceState);
setContentView (R.layout.activity_main);
开始=(按钮)findViewById (R.id.start);
停止=(按钮)findViewById (R.id.stop);
=(按钮)findViewById (R.id.get);
this.start.setOnClickListener(这);
this.stop.setOnClickListener(这);
this.get.setOnClickListener(这);
}
@Override
公共空>开关(view.getId ()) {
R.id。开始:
//第二种启动方式
=new意图(MainActivity意图。这个,MyService.class);
bindService(康涅狄格州,Service.BIND_AUTO_CREATE);
//第一种启动方式,活动关闭的时候服务也会随着关闭
//意图=新意图(MainActivity.this MyService.class);
//MainActivity.this.startService(在);
打破;
R.id。站:
//第二种关闭方式
unbindService(康涅狄格州);
//第一种启动方式,活动关闭的时候服务也会随着关闭
//意图in2=new意图(MainActivity.this MyService.class);
//MainActivity.this.stopService (in2);
打破;
R.id。得到:
//获取状态
system . out
.println(“=====服务返回的值======在祝辞祝辞祝辞”+ binder.getCount ());
打破;
默认值:
打破;
}
}
}