Android入门五(Service)

来源:互联网 发布:希腊罗马神话 知乎 编辑:程序博客网 时间:2024/06/05 07:32

Service

  • 实质:提供了一种不启动前台界面、让你在后台执行一些运算的途,方便挂起后台运行
  • 后台运行,无界面,优先级高于activity
  • 四大组件运行在主线程,不能用来做耗时操作;可以在服务中开一个线程,在线程中进行操作
  • 类型
    • 本地服务.应用程序内部,startService/stopService, bindService
    • 远程服务.手机内部应用程序之间
    • 都需要定义IBinder接口
  • StartService
    • 特点:服务与启动源没有联系,无法得到服务对象
  • BindService
    • 特点:通过IBinder接口实例,返回一个ServiceConnection对象给启动源,通过后者的方法可以得到Service对象 
  • 定义一个类继承Service,需要进行注册,载xml文件中
    <service android:name="包+类"></service>
  • 实例
//MainActivityMyBinderService service;ServiceConnection conn = new ServiceConnection(){    //当启动源与service连接意外丢失,比如service崩溃    onServiceDisconnected(ComponentName name);    //当启动源与service成功连接    onServiceConnected(ComponentName name, IBinder binder) {        service = ((Mybinder)binder).getService();    }}Intent intent = new Intent(MainActivity.this, MyBinderService.class);bindService(intent, conn, Service.BIND_AUTO_CREATE);//只能unbind一次unbindService(conn);startService(intent);//MyBinderService.classpublic class MyBinder extends Binder {    public MyBindService getService() {        return MyBinderService.this;    }}public IBinder onBind(Intent intent) {    return new MyBinder();}
0 0
原创粉丝点击