# Class AdsService

java.lang.Object
com.codename1.io.ConnectionRequest
com.codename1.ads.AdsService

All Implemented Interfaces:
  `IOProgressListener`

Direct Known Subclasses:
  `InnerActive`

public abstract class AdsService extends ConnectionRequest
This is an abstract Ads Service. Each supported Ad network needs to extend this Service and to implement the initService method

- ## Nested Class Summary

  ### Nested classes/interfaces inherited from class ConnectionRequest

  `ConnectionRequest.CachingMode, ConnectionRequest.SSLCertificate`

- ## Field Summary

  ### Fields inherited from class ConnectionRequest

  `PRIORITY_CRITICAL, PRIORITY_HIGH, PRIORITY_LOW, PRIORITY_NORMAL, PRIORITY_REDUNDANT`

- ## Constructor Summary

  Constructors
  Modifier
  Constructor
  Description
  `protected`
  `AdsService()`
  Empty constructor

- ## Method Summary

  Modifier and Type
  Method
  Description
  `static AdsService`
  `createAdsService()`
  Creates a new AdsService to be used by the Ads Component
  `String`
  `getCurrentAd()`
  Returns the last requested ad
  `protected void`
  `handleErrorResponseCode(int code, String message)`
  Handles a server response code that is not 200 and not a redirect (unless redirect handling is disabled)
  `protected void`
  `handleException(Exception err)`
  Handles an exception thrown when performing a network operation, the default implementation shows a retry dialog.
  `protected void`
  `handleRuntimeException(RuntimeException err)`
  Handles an exception thrown when performing a network operation
  `void`
  `initialize(Ads adsComponent)`
  Initialize the ads service.
  `abstract void`
  `initService(Ads adsComponent)`
  init the service requests.
  `void`
  `onAdDisplay(HTMLComponent cmp)`
  This a callback method to inform to the service the Ad is displayed
  `protected void`
  `readResponse(InputStream input)`
  Callback for the server response with the input stream from the server.
  `void`
  `requestAd()`
  Schedule this service on the Network thread and executes the request
  `static void`
  `setAdsProvider(Class provider)`
  Sets the provider of the ads service.

  ### Methods inherited from class ConnectionRequest

  `addArgument, addArgument, addArgument, addArgumentArray, addArgumentNoEncoding, addArgumentNoEncoding, addArgumentNoEncodingArray, addArguments, addExceptionListener, addRequestHeader, addResponseCodeListener, addResponseListener, buildRequestBody, cacheUnmodified, canGetSSLCertificates, checkSSLCertificates, cookieReceived, cookieSent, createRequestURL, downloadImageToFileSystem, downloadImageToFileSystem, downloadImageToFileSystem, downloadImageToFileSystem, downloadImageToFileSystem, downloadImageToFileSystem, downloadImageToStorage, downloadImageToStorage, downloadImageToStorage, downloadImageToStorage, downloadImageToStorage, downloadImageToStorage, equals, fetchJSON, fetchJSONAsync, fireResponseListener, getCachedData, getCacheMode, getContentLength, getContentType, getCookieHeader, getDefaultCacheMode, getDefaultUserAgent, getDestinationFile, getDestinationStorage, getDisposeOnCompletion, getHeader, getHeaderFieldNames, getHeaders, getHttpMethod, getPriority, getReadTimeout, getRequestBody, getRequestBodyData, getResponseCode, getResponseContentType, getResponseData, getResponseErrorMessage, getResposeCode, getShowOnInit, getSilentRetryCount, getSSLCertificates, getTimeout, getUrl, getUserAgent, getYield, handleIOException, hashCode, hasResponseListeners, initConnection, initCookieHeader, ioStreamUpdate, isCheckSSLCertificates, isCookiesEnabled, isCookiesEnabledDefault, isDefaultFollowRedirects, isDuplicateSupported, isFailSilently, isFollowRedirects, isHandleErrorCodesInGlobalErrorHandler, isInsecure, isKilled, isNativeCookieSharingSupported, isPausable, isPaused, isPost, isReadRequest, isReadResponseForErrors, isReadResponseForErrorsDefault, isReadTimeoutSupported, isRedirecting, isWriteRequest, kill, onRedirect, pause, postResponse, purgeCache, purgeCacheDirectory, readErrorCodeHeaders, readHeaders, removeAllArguments, removeArgument, removeExceptionListener, removeResponseCodeListener, removeResponseListener, resume, retry, setCacheMode, setCheckSSLCertificates, setChunkedStreamingMode, setContentType, setCookieHeader, setCookiesEnabled, setCookiesEnabledDefault, setDefaultCacheMode, setDefaultFollowRedirects, setDefaultUserAgent, setDestinationFile, setDestinationStorage, setDisposeOnCompletion, setDuplicateSupported, setFailSilently, setFollowRedirects, setHandleErrorCodesInGlobalErrorHandler, setHttpMethod, setInsecure, setKilled, setPaused, setPost, setPriority, setReadRequest, setReadResponseForErrors, setReadResponseForErrorsDefault, setReadTimeout, setRequestBody, setRequestBody, setShowOnInit, setSilentRetryCount, setTimeout, setUrl, setUseNativeCookieStore, setUserAgent, setWriteRequest, shouldAutoCloseResponse, shouldConvertPostToGetOnRedirect, shouldStop, shouldWriteUTFAsGetBytes, validate`

  ### Methods inherited from class Object

  `clone, getClass, notify, notifyAll, toString, wait, wait, wait`

- ## Constructor Details

  - ### AdsService

    protected AdsService()
    Empty constructor

- ## Method Details

  - ### createAdsService

    public static AdsService createAdsService()
    Creates a new AdsService to be used by the Ads Component

  - ### setAdsProvider

    public static void setAdsProvider(Class provider)

    Sets the provider of the ads service.

    ###### Parameters

    - `provider`: this class needs to extend the AdsService class

  - ### initialize

    public void initialize(Ads adsComponent)
    Initialize the ads service.

  - ### initService

    public abstract void initService(Ads adsComponent)
    init the service requests.

  - ### getCurrentAd

    public String getCurrentAd()
    Returns the last requested ad

  - ### requestAd

    public void requestAd()
    Schedule this service on the Network thread and executes the request

  - ### readResponse

    protected void readResponse(InputStream input) throws IOException

    Callback for the server response with the input stream from the server. This method is invoked on the network thread

    ###### Parameters

    - `input`: the input stream containing the response

    ###### Throws

    - `IOException`: when a read input occurs
    Overrides:
      `readResponse` in class `ConnectionRequest`
    Throws:
      `IOException`

  - ### onAdDisplay

    public void onAdDisplay(HTMLComponent cmp)

    This a callback method to inform to the service the Ad is displayed

    ###### Parameters

    - `cmp`

  - ### handleErrorResponseCode

    protected void handleErrorResponseCode(int code, String message)

    Handles a server response code that is not 200 and not a redirect (unless redirect handling is disabled)

    ###### Parameters

    - `code`: the response code from the server

    - `message`: the response message from the server

    Overrides:
      `handleErrorResponseCode` in class `ConnectionRequest`

  - ### handleRuntimeException

    protected void handleRuntimeException(RuntimeException err)

    Handles an exception thrown when performing a network operation

    ###### Parameters

    - `err`: the exception thrown
    Overrides:
      `handleRuntimeException` in class `ConnectionRequest`

  - ### handleException

    protected void handleException(Exception err)

    Handles an exception thrown when performing a network operation, the default implementation shows a retry dialog.

    ###### Parameters

    - `err`: the exception thrown
    Overrides:
      `handleException` in class `ConnectionRequest`