code: public void queryInventoryAsync(final boolean querySkuDetails,
                                 final List<String> moreSkus,
                                 final QueryInventoryFinishedListener listener) {
          final Handler handler = new Handler();
          checkNotDisposed();
          checkSetupDone("queryInventory");
          flagStartAsync("refresh inventory");
          (new Thread(new Runnable() {
              public void run() {
                  IabResult result = new IabResult(BILLING_RESPONSE_RESULT_OK, "Inventory refresh successful.");
                  Inventory inv = null;
                  try {
                      inv = queryInventory(querySkuDetails, moreSkus);
                  }
                  catch (IabException ex) {
                      result = ex.getResult();
                  }
  
                  flagEndAsync();
  
                  final IabResult result_f = result;
                  final Inventory inv_f = inv;
                  if (!mDisposed && listener != null) {
                      handler.post(new Runnable() {
                          public void run() {
                              listener.onQueryInventoryFinished(result_f, inv_f);
                          }
                      });
                  }
              }
          })).start();
      }
docs: Asynchronous wrapper for inventory query. This will perform an inventory
  query as described in {@link #queryInventory}, but will do so asynchronously
  and call back the specified listener upon completion. This method is safe to
  call from a UI thread.
  
  @param querySkuDetails as in {@link #queryInventory}
  @param moreSkus as in {@link #queryInventory}
  @param listener The listener to notify when the refresh operation completes.