服务的基本操作

  

,,,,服务的基本操作,启动服务的方式有两种,一种是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 ());

打破;

默认值:

打破;

}

}

}


  附件:http://down.51cto.com/data/2365688

服务的基本操作