码迷,mamicode.com
首页 > 移动开发 > 详细

安卓学习之服务基本用法

时间:2016-09-28 22:13:21      阅读:184      评论:0      收藏:0      [点我收藏+]

标签:

 服务的生命周期

  服务被启动后,会回调onStartCommand()方法, 如果这个服务是第一次创建,那么会调用onCreate()方法。服务启动之后会一直运行直到stopService()或stopSelf()方法被调用。虽然每调用一次 startService()方法,

但是服务只会存在一个实例。所以不管调用几次startService()方法,只需调用一次 stopService()或 stopSelf()方法,服务就会停止下来了。

  调用 Context的bindService()方法,可以获取服务的连接,这时候就会调用服务的onBind()方法,返回IBinder对象的实例, 这样就能和服务进行通信了。只要和服务的连接没有断开,服务就会一直保持运行状态。

  所以当调用startService()方法后,又去调用stopService()方法,这时服务中的onDestroy()方法就会执行,表示服务销毁。当调用了 bindService()方法后,又去调用unbindService()方法,onDestroy()方法也会执行。如果一个活动被调用了startService()和bindService()方法,那么我们就要同时调用stopService()和unbindService()方法,这样onDestory()方法才会被执行。

  这些就遍历了服务的生命周期。

 

服务

  服务要在AndroidManifest.xml中注册

  服务的创建:

public class LongRunningService extends Service {

    @Override
    public IBinder onBind(Intent intent) {
        return null;
    }

    @Override
    public void onCreate() {
        super.onCreate();
    }

    @Override
    public int onStartCommand(Intent intent, int flags, int startId) {
        return super.onStartCommand(intent, flags, startId);
    }

    @Override
    public void onDestroy() {
        super.onDestroy();
    }
}

 

  onBind()方法是一个抽象类,所以必须实现它。当服务第一次调用时,就会调用onCreate(),调用onStartCommand()方法。 之后调用服务就不会在调用onCreate()方法,直接调用onStartCommand()方法。onDestory()方法
会在服务销毁时调用。




 

安卓学习之服务基本用法

标签:

原文地址:http://www.cnblogs.com/sweat123/p/5918057.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!