安卓学习之服务基本用法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了安卓学习之服务基本用法相关的知识,希望对你有一定的参考价值。

 服务的生命周期

  服务被启动后,会回调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()方法
会在服务销毁时调用。




 

以上是关于安卓学习之服务基本用法的主要内容,如果未能解决你的问题,请参考以下文章

安卓学习之通知(Notification)

安卓学习之FrameLayout

Android学习之基础知识十三—网络编程的最佳实践

Android开发学习之通知

Scala基础学习之for循环和while循环

TensFlow框架学习之MNIST机器学习入门