Пример #1
0
  public void fetchAdForUrl(String url) {
    mCurrentTaskId++;
    Log.i("MoPub", "Fetching ad for task #" + mCurrentTaskId);

    if (mCurrentTask != null) {
      mCurrentTask.cancel(true);
    }

    mCurrentTask = new AdFetchTask(this);

    if (Build.VERSION.SDK_INT >= VERSION_CODE_ICE_CREAM_SANDWICH) {
      Class<?> cls = AdFetchTask.class;
      Class<?>[] parameterTypes = {Executor.class, Object[].class};

      String[] parameters = {url};

      try {
        Method method = cls.getMethod("executeOnExecutor", parameterTypes);
        Field field = cls.getField("THREAD_POOL_EXECUTOR");
        method.invoke(mCurrentTask, field.get(cls), parameters);
      } catch (NoSuchMethodException exception) {
        Log.d("MoPub", "Error executing AdFetchTask on ICS+, method not found.");
      } catch (InvocationTargetException exception) {
        Log.d("MoPub", "Error executing AdFetchTask on ICS+, thrown by executeOnExecutor.");
      } catch (Exception exception) {
        Log.d("MoPub", "Error executing AdFetchTask on ICS+: " + exception.toString());
      }
    } else {
      mCurrentTask.execute(url);
    }
  }
Пример #2
0
 public void cancelFetch() {
   if (mCurrentTask != null) {
     Log.i("MoPub", "Canceling fetch ad for task #" + mCurrentTaskId);
     mCurrentTask.cancel(true);
   }
 }