code: public static void buildPendingIntentFromPushNotification(@NonNull final PendingIntentCallback callback, @NonNull final Intent intent) {
  		if (callback == null) {
  			throw new IllegalArgumentException("Callback is null");
  		}
  
  		dispatchConversationTask(new ConversationDispatchTask() {
  			@Override
  			protected boolean execute(Conversation conversation) {
  				String apptentivePushData = ApptentiveInternal.getApptentivePushNotificationData(intent);
  				final PendingIntent intent = ApptentiveInternal.generatePendingIntentFromApptentivePushData(conversation, apptentivePushData);
  				DispatchQueue.mainQueue().dispatchAsync(new DispatchTask() {
  					@Override
  					protected void execute() {
  						callback.onPendingIntent(intent);
  					}
  				});
  				return true;
  			}
  		}, "build pending intent");
  	}
docs: <p>Use this method in your push receiver to build a pending Intent when an Apptentive push
  notification is received. Pass the generated PendingIntent to
  {@link android.support.v4.app.NotificationCompat.Builder#setContentIntent} to allow Apptentive
  to display Interactions such as Message Center. Calling this method for a push {@link Intent} that did
  not come from Apptentive will return a null object. If you receive a null object, your app will
  need to handle this notification itself.</p>
  <p>This task is performed asynchronously.</p>
  <p>This is the method you will likely need if you integrated using:</p>
  <ul>
  <li>GCM</li>
  <li>AWS SNS</li>
  <li>Parse</li>
  </ul>
  
  @param callback Called after we check to see Apptentive can launch an Interaction from this
  push. Called with a {@link PendingIntent} to launch an Apptentive Interaction
  if the push data came from Apptentive, and an Interaction can be shown, or
  null.
  @param intent   An {@link Intent} containing the Apptentive Push data. Pass in what you receive
  in the Service or BroadcastReceiver that is used by your chosen push provider.