你的位置:首页 > 软件开发 > 操作系统 > Service的启动与停止、绑定与解绑

Service的启动与停止、绑定与解绑

发布时间:2016-02-21 13:01:16
---恢复内容开始---  Service的意义就在于当软件停止之后还可以在背景中进行运行,换句话也就是说,比如一个音乐播放器,当我们退出音乐播放器的时候,还是希望它在背景中运行,也就是一直播放着音乐,这时候Service就派上了大的用途。  Service的生命周期和Activ ...

---恢复内容开始---

  Service的意义就在于当软件停止之后还可以在背景中进行运行,换句话也就是说,比如一个音乐播放器,当我们退出音乐播放器的时候,还是希望它在背景中运行,也就是一直播放着音乐,这时候Service就派上了大的用途。

  Service的生命周期和Activity的生命周期差不多。也有开启和停止。onCreate()方法是初始化配置,onDestroy()是释放所有剩余的资源。Service周期是发生在onCreate()和onDestroy()之间的。

    startService()方法是启动Service。

    StopService()方法是停止Service。

    bindService()方法是启动Service的激活生命周期始于onBind()调用,在onUnbind()返回时结束。

  当一个组件启动Service时,是通过startService()进行启动Service,当Service被启动之后,onStartCommand()方法被调用,并且接收startService()方法中传递的Intent值。

  onStartServiceCommand()方法必修返回一个整形值。这个整形值是说明了Service在系统中如何执行。其中三个比较常用的解释如下:

    START_NOT_STICKY:如果系统在onStartServiceCommand()返回后杀死Service,那么不会重新创建Service,除非有等待的Intent要传递。

    START_STICKY 如果系统在onStartServiceCommand()返回后杀死Service,重启Service,并且重新调用onStartServiceCommand(),但不重新传递最新的Intent。

    START_REDELIVER_INTENT 如果系统在onStartServiceCommand()返回后杀死Service,那么重新创建Service,并且最近传给Service的Intent调用onStartServiceCommand()。

  创建一个Service启动周期的实例

  

 1 public class MyService extends Service{ 2    3   //必须实现的方法,作用是用来返回binder对象 4    5    6   //重写onBind()方法,返回Service实例,使Service支持绑定,实现onBind()方法,并且返回MyService实例 7   @Override 8   public IBinder onBind(Intent intent) { 9     // TODO Auto-generated method stub10     System.out.println("--onBind--");11     return null;12   }13   14   15   //用于创建Service的方法,只能调用一次16   public void onCreate(){17     super.onCreate();18     System.out.println("--onCreate--");19 20   //每次启动Service时都会调用这个方法21   @Override22   public int onStartCommand(Intent intent, int flags, int startId) {23     // TODO Auto-generated method stub24     System.out.println("--onStartCommand--");25     return super.onStartCommand(intent, flags, startId);26   }27   28   //解绑的时候使用的这个方法29   @Override30   public boolean onUnbind(Intent intent) {31     // TODO Auto-generated method stub32     System.out.println("--onUnbind--");33     return super.onUnbind(intent);34   }35   36   //退出或者销毁的时候使用这个方法37   @Override38   public void onDestroy() {39     // TODO Auto-generated method stub40     serviceRunning = false;41     System.out.println("--onDestroy--");42     super.onDestroy();43     44   }45 46 }

原标题:Service的启动与停止、绑定与解绑

关键词:

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

可能感兴趣文章

我的浏览记录