Service生命周期

这里写图片描述

public class LifeCycleService extends Service {
    /**开发Service两大步骤
     * step1:定义一个继承Service的子类 如:class LifeCycleService extends Service 
     * step 2:在AndroidManifest.xml文件中配置该Service
     * 启动Service的两种形式:
     * 第一种在Activity中通过Context的startService()方法,访问者和Service之间没有联系,即使访问者退出了,Service仍然进行
     * 第二种在Activity中通过Cointext的bindService()方法,访问者一旦退出,Service将终止;
     */
    public LifeCycleService() {
    }
    @Override
    public void onCreate() {
        super.onCreate();
        Log.d("jereh","服务被创建");
    }

    /**Service被启动时,回调该方法。
     * 后台任务,比较耗时,复杂的任务。
     * @param intent
     * @param flags
     * @param startId
     * @return
     */
    private int count=1;
    @Override
    public int onStartCommand(Intent intent, int flags, int startId) {
        //thread 区别,service不是线程,而是进程,进程和UI进程是共享
        //进程是运行的程序,一个进程就可以包括多个线程,一个线程就是一个功能
        //任务表示一种独立性功能
        //任务完成,进程仍然存在,
        // 在服务运行过程中如果停止服务,重新执行
        new Thread(new Runnable() {
            @Override
            public void run() {
//                    count+=10;
                Log.d("jereh","正在提供服务");
//                   if(count>100){
//                       stopSelf();//停止服务
//                   }
                try {
                    Thread.sleep(2000);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
                stopSelf();
                }

        }).start();
        //TODO:返回值
        //Service.START_STICKY:描述了标准的重启行为
        //如果返回该值,那么当Service被系统杀死后重新启动时将调用onStartCommand方法
        //需要注意此时参数为null;
        //START_NOT_STICKY
        return Service.START_NOT_STICKY;
    }

    @Override
    public IBinder onBind(Intent intent) {
        // TODO: Return the communication channel to the service.
        throw new UnsupportedOperationException("Not yet implemented");
    }

    /**
     * 当Service绑定的所有客户端都断开连接时,将会回调该方法。
     * @param intent
     * @return
     */

    @Override
    public boolean onUnbind(Intent intent) {
        return super.onUnbind(intent);
    }

    @Override
    public void onDestroy() {

        super.onDestroy();
        Log.d("jereh","销毁");
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值